监控CentOS上的Kubernetes(K8s)集群需覆盖集群状态、资源使用、日志分析、可视化告警等多个维度,以下是常用且有效的工具与方法:
kubectl是Kubernetes自带的命令行工具,可直接与集群交互,获取核心状态信息,适合快速排查问题:
kubectl get nodes(显示节点是否处于“Ready”状态,确认节点是否正常加入集群);kubectl get pods --all-namespaces(查看所有命名空间的Pod运行状态,如“Running”“Pending”“Error”);kubectl get deployments --all-namespaces(确认应用部署的副本数、更新状态);kubectl get events --all-namespaces(获取集群内的异常事件,如Pod调度失败、节点资源不足);kubectl logs <pod-name> -n <namespace>(查看指定Pod的日志,辅助定位应用问题)。Prometheus是开源的时间序列数据库,专为动态云环境设计,可收集K8s集群的指标数据(如节点CPU/内存使用率、Pod资源占用、服务响应时间);Grafana是可视化工具,可将Prometheus中的数据转化为直观的仪表盘。
kube-prometheus-stack,包含Prometheus、Alertmanager、Node Exporter等组件):helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/kube-prometheus-stack
helm install grafana grafana/grafana
# 登录Grafana(默认地址:http://<node-ip>:3000,账号admin/admin),添加Prometheus数据源后,导入K8s监控仪表盘(如ID:1860、4076)。
cAdvisor(Container Advisor)是Kubernetes内置的容器资源监控工具,集成在kubelet中,无需额外安装。它可实时采集容器级别的指标(CPU、内存、磁盘IO、网络流量),并通过Kubelet的API暴露给Prometheus等工具。
/metrics接口(如http://<node-ip>:10250/metrics/cadvisor),可看到容器的资源使用数据。K8s的日志监控需收集容器日志(应用日志、系统日志),常用EFK Stack(Elasticsearch+Fluentd+Kibana)或ELK Stack(Elasticsearch+Logstash+Kibana):
kubectl logs <pod-name> -n <namespace>),或通过Kibana查询特定容器的日志。若需要更高级的功能(如全栈监控、AI驱动的异常检测),可选择第三方工具:
以上方法可根据集群规模(如小型集群用kubectl+cAdvisor,大型集群用Prometheus+Grafana+EFK)、需求(如是否需要告警、日志分析)灵活组合,实现全面的K8s监控。