在CentOS系統上監控Kubernetes(K8s)集群的部署狀態,需結合命令行工具(快速排查)、可視化工具(直觀展示)、告警系統(主動通知)三類方案,覆蓋從基礎到高級的監控需求。以下是具體方法:
kubectl
是K8s官方命令行工具,可直接與集群API交互,快速查看部署狀態,適合日常運維和故障排查。
Ready
狀態為正常)。kubectl get nodes
Running
為正常,Pending
表示未調度,CrashLoopBackOff
表示容器崩潰)。kubectl get pods --all-namespaces
AVAILABLE
列表示可用副本數)。kubectl get deployments --all-namespaces
describe
命令獲取資源的具體事件(如調度失敗、鏡像拉取錯誤)。kubectl describe pod <pod-name> -n <namespace> # 查看Pod詳情
kubectl describe deployment <deployment-name> -n <namespace> # 查看Deployment詳情
kubectl get events --all-namespaces
這些命令能快速定位部署中的常見問題(如Pod無法啟動、副本數不足),是運維人員的基礎工具。
Kubernetes Dashboard是官方提供的Web界面,可直觀展示集群資源狀態,適合需要圖形化管理的場景。
kubectl
應用官方YAML文件部署。kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
https://<CentOS節點IP>:30000
,輸入Token登錄。exec
進入Pod);Prometheus(監控系統)+Grafana(可視化平臺)是K8s生態中最流行的監控組合,支持全面的指標采集、靈活的可視化和告警功能,適合生產環境。
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/kube-prometheus-stack
sudo yum install -y grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
登錄Grafana(http://<CentOS節點IP>:3000
,默認賬號admin/admin
),添加Prometheus數據源。Kubernetes Cluster Monitoring
,ID:193);alertmanager
組件設置告警規則(如Pod連續重啟超過3次時發送郵件/Slack通知)。若需要開箱即用的企業級功能(如自動發現集群、多租戶支持、高級告警),可選擇以下第三方工具:
部署狀態的異常往往伴隨日志錯誤,需結合日志分析工具定位問題:
kubectl
查看Pod的標準輸出日志(-f
參數實時跟蹤)。kubectl logs <pod-name> -n <namespace>
kubectl logs -f <pod-name> -n <namespace> # 實時日志
journalctl -u kubelet -f
以上方法覆蓋了從基礎命令行到企業級可視化的監控需求,可根據集群規模(如測試環境用Dashboard+命令行,生產環境用Prometheus+Grafana+第三方工具)和預算選擇合適的方案。