CentOS上如何监控Kubernetes集群状态
导读:在 CentOS 上监控 Kubernetes 集群的可落地方案 一 快速巡检与命令行监控 节点与组件健康 查看节点状态:kubectl get nodes;若状态不是 Ready,用 kubectl describe node 定...
在 CentOS 上监控 Kubernetes 集群的可落地方案
一 快速巡检与命令行监控
- 节点与组件健康
- 查看节点状态:kubectl get nodes;若状态不是 Ready,用 kubectl describe node 定位问题。
- 查看系统组件与事件:kubectl get pods -n kube-system;kubectl get events --sort-by=.metadata.creationTimestamp。
- 工作负载状态
- 全命名空间查看 Pod:kubectl get pods --all-namespaces;关注 CrashLoopBackOff/Error/ImagePullBackOff 等状态。
- 资源使用:kubectl top nodes;kubectl top pods --all-namespaces。
- 节点服务与内核日志
- 检查 kubelet:systemctl status kubelet;journalctl -u kubelet -f
- 内核与系统日志:dmesg;/var/log/messages 或 /var/log/syslog。
二 指标监控 Prometheus + Grafana
-
组件分工
- cAdvisor:内置于 kubelet,采集节点与容器的 CPU、内存、网络、文件系统 使用;无需单独部署。
- Node Exporter:采集节点级系统指标(磁盘、网络等),以 DaemonSet 方式部署在各节点。
- kube-state-metrics:从 API Server 获取集群对象(Deployment、StatefulSet、Pod 等)的状态指标,用于容量与合规观测。
- Metrics Server:为 HPA/VPA/Cluster Autoscaler 提供资源使用聚合数据(如 CPU/内存),是调度与扩缩容的基础。
- Prometheus:拉取上述目标指标并存储;Grafana 做可视化与告警面板。
-
快速部署(推荐 Helm)
- 添加仓库并安装 kube-prometheus-stack(包含 Prometheus Operator、Prometheus、Alertmanager、Grafana、Node Exporter、kube-state-metrics 等):
- helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
- helm repo update
- helm install prometheus prometheus-community/kube-prometheus-stack --namespace monitoring --create-namespace
- 外部访问示例(NodePort):
- kubectl patch svc prometheus-grafana -n monitoring -p ‘{ “spec”: { “type”: “NodePort”, “ports”: [{ “port”: 80, “targetPort”: 3000, “nodePort”: 30100} ]} } ’
- kubectl patch svc prometheus-k8s -n monitoring -p ‘{ “spec”: { “type”: “NodePort”, “ports”: [{ “port”: 9090, “targetPort”: 9090, “nodePort”: 30200} ]} } ’
- 登录 Grafana(默认账号/密码通常为 admin/admin),添加数据源 Prometheus(地址如:http://prometheus-k8s.monitoring.svc.cluster.local:9090),导入常用面板(如 Kubernetes / Compute Resources / Cluster 模板 ID 8588)。
- 添加仓库并安装 kube-prometheus-stack(包含 Prometheus Operator、Prometheus、Alertmanager、Grafana、Node Exporter、kube-state-metrics 等):
三 日志与可视化
- 日志方案
- EFK(Elasticsearch + Fluentd/Logstash + Kibana):集中采集容器与节点日志,支持关键字检索、聚合分析与可视化。
- Elastic Stack Beats:在集群中部署 Filebeat/Metricbeat,将日志与指标推送到 Elasticsearch,在 Kibana 中查看与构建仪表板。
- 可视化与告警
- Grafana 用于指标可视化与阈值告警(如节点 CPU/内存 持续高占用、Pod 重启次数 异常等),可结合 Alertmanager 发送邮件/企业微信/钉钉通知。
四 关键指标与告警示例
- 建议重点观测与告警
- 节点资源:节点 CPU/内存/磁盘 使用率持续超过阈值(如 80% 持续 5 分钟);节点 NotReady。
- 工作负载:Pod CrashLoopBackOff、OOMKilled、ImagePullBackOff;Deployment/StatefulSet 副本不可用。
- 控制面:API Server 请求延迟/错误率 升高;etcd 存储与 leader 健康异常。
- 网络:跨节点 Pod 连通性 异常;Service Endpoints 为空;Ingress 5xx 增多。
- 存储:PVC 长时间 Pending;Volume 挂载失败;本地/远端存储不可用。
- 快速验证抓取链路
- 确认 cAdvisor 指标:在 Prometheus 查询容器指标(如 container_cpu_usage_seconds_total),来源应为 kubelet 10250 端点(cAdvisor 已集成于 kubelet)。
- 确认 Node Exporter 与 kube-state-metrics 目标被 Prometheus 发现并 UP。
五 安全与网络访问建议
- 暴露方式:生产优先 Service 类型为 ClusterIP,通过 Ingress 或 内部 LoadBalancer 访问;临时测试可用 NodePort,并限制来源 IP。
- 认证与授权:为 Grafana/Prometheus 配置最小权限 RBAC;对外接口启用 TLS。
- 合规与加固:限制 kubelet 10250 的访问范围(如仅允许 apiserver 与监控采集器),定期轮换 Bearer Token/证书。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS上如何监控Kubernetes集群状态
本文地址: https://pptw.com/jishu/775311.html
