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展示。
若需要更丰富的功能(如实时告警、应用性能监控、分布式追踪),可选择第三方工具: