1. 使用kubectl命令行工具(基礎監控)
kubectl
是Kubernetes原生命令行工具,無需額外安裝,適合快速查看集群狀態。常用命令包括:
kubectl get nodes
(顯示節點名稱、狀態(Ready/NotReady)、版本等信息,所有節點為“Ready”表示節點正常);kubectl get pods --all-namespaces
(查看所有命名空間的Pod運行狀態(Running/Pending/CrashLoopBackOff等));kubectl get deployments --all-namespaces
(查看Deployment的副本數、更新狀態等);kubectl get services --all-namespaces
(查看Service的集群IP、端口、外部IP等);kubectl get events --all-namespaces
(查看集群近期事件,如Pod調度失敗、節點異常等);kubectl describe pod <pod-name> -n <namespace>
(查看Pod的詳細信息,包括事件、容器狀態、資源請求/限制等)。2. 使用Kubernetes Dashboard(可視化監控)
Kubernetes Dashboard是基于Web的UI工具,提供集群資源(節點、Pod、Deployment等)的實時可視化及基礎管理功能。安裝步驟:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
(使用最新版本的YAML文件);kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
(復制“token”字段的值);https://<節點IP>:30000
(端口可能因配置不同而變化),粘貼Token登錄即可查看集群狀態。3. 使用Prometheus+Grafana(專業監控與可視化)
Prometheus是開源監控系統,Grafana是可視化工具,組合使用可實現對Kubernetes集群的全面監控(包括節點、Pod、容器資源利用率、應用指標等)。部署步驟:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts && helm install prometheus prometheus-community/kube-prometheus-stack
(自動部署Prometheus Server、kube-state-metrics、Node Exporter等組件);helm install grafana grafana/grafana
(部署Grafana服務);http://<節點IP>:3000
,默認用戶名/密碼為admin),添加Prometheus數據源(URL為http://prometheus-operated.monitoring.svc.cluster.local:9090
);4. 使用Metrics Server(資源指標收集)
Metrics Server是輕量級指標聚合器,用于收集CPU、內存等資源使用數據,為Horizontal Pod Autoscaler(HPA)等組件提供數據支持。安裝步驟:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
;kubectl get pods -n kube-system | grep metrics-server
(確保Pod處于“Running”狀態);kubectl top nodes
(查看節點資源使用)、kubectl top pods --all-namespaces
(查看Pod資源使用)。5. 使用第三方監控工具(企業級方案)
第三方工具提供更豐富的功能(如告警、日志集成、容量規劃等),適合生產環境:
6. 日志監控(補充)
監控不僅包括性能指標,還需收集日志以排查問題。常用方案: