首页主机资讯CentOS上如何监控Kubernetes集群状态

CentOS上如何监控Kubernetes集群状态

时间2025-12-18 18:03:03发布访客分类主机资讯浏览443
导读:在 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)。

三 日志与可视化

  • 日志方案
    • EFK(Elasticsearch + Fluentd/Logstash + Kibana):集中采集容器与节点日志,支持关键字检索、聚合分析与可视化。
    • Elastic Stack Beats:在集群中部署 Filebeat/Metricbeat,将日志与指标推送到 Elasticsearch,在 Kibana 中查看与构建仪表板。
  • 可视化与告警
    • Grafana 用于指标可视化与阈值告警(如节点 CPU/内存 持续高占用、Pod 重启次数 异常等),可结合 Alertmanager 发送邮件/企业微信/钉钉通知。

四 关键指标与告警示例

  • 建议重点观测与告警
    • 节点资源:节点 CPU/内存/磁盘 使用率持续超过阈值(如 80% 持续 5 分钟);节点 NotReady
    • 工作负载:Pod CrashLoopBackOffOOMKilledImagePullBackOff;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 Exporterkube-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
Kubernetes在CentOS上的故障排查方法有哪些 CentOS与Kubernetes的集成方案是什么

游客 回复需填写必要信息