Linux系統下Kubernetes監控方法與工具
kubectl
是Kubernetes原生命令行工具,無需額外安裝,適合快速檢查集群基礎狀態:
kubectl get nodes
(顯示節點名稱、狀態、角色及版本);kubectl get pods --all-namespaces
(列出所有命名空間的Pod名稱、狀態、重啟次數);kubectl get deployments --all-namespaces
(查看Deployment的副本數、更新狀態);kubectl get services --all-namespaces
(查看Service的類型、集群IP、端口映射);kubectl describe node <節點名稱>
(查看節點資源容量、分配情況)、kubectl describe pod <Pod名稱> -n <命名空間>
(查看Pod的事件、容器狀態);kubectl get events --all-namespaces
(顯示集群內近期事件,如Pod調度失敗、節點異常)。Prometheus是開源時間序列數據庫,專為云原生環境設計,支持動態發現Kubernetes目標(如Pod、節點)并收集指標(CPU、內存、網絡、自定義指標);Grafana是可視化平臺,可與Prometheus無縫集成,創建直觀的儀表盤展示集群狀態。
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts && helm install prometheus prometheus-community/kube-prometheus-stack
(包含Prometheus Server、Exporter、Alertmanager等組件);sudo yum install -y grafana
),啟動服務后訪問http://<節點IP>:3000
(默認用戶名/密碼:admin/admin);http://prometheus-server:9090
)。Grafana提供豐富的預置Kubernetes儀表盤(如“Kubernetes Cluster Monitoring”“Node Exporter Full”),可通過搜索導入,展示以下內容:
Metrics Server是Kubernetes集群范圍資源指標聚合器,替代了已棄用的Heapster,用于收集CPU、內存等核心指標,為kubectl top
命令提供數據支持。
通過YAML文件安裝:kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
。
安裝完成后,可通過以下命令查看節點和Pod的資源使用情況:
kubectl top nodes
(顯示節點CPU、內存使用率);kubectl top pods --all-namespaces
(顯示所有Pod的CPU、內存使用率)。ELK Stack是開源日志管理解決方案,適合收集、存儲、分析Kubernetes集群日志(容器日志、節點日志、應用日志)。
通過Filebeat(輕量級日志收集器)收集Kubernetes節點上的容器日志,配置Filebeat將日志發送至Logstash,再存儲至Elasticsearch,最后通過Kibana展示。
若需要更豐富的功能(如實時告警、應用性能監控、分布式追蹤),可選擇第三方工具: