温馨提示×

k8s在centos上的监控方法

小樊
42
2025-11-08 05:42:16
栏目: 智能运维

Kubernetes在CentOS上的常用监控方法

在CentOS环境中监控Kubernetes(k8s)集群,需结合命令行工具(快速排查)、可视化工具(趋势分析)及告警系统(主动通知),覆盖节点、容器、编排组件、应用等多维度指标。以下是具体方法及实践步骤:

1. 使用kubectl命令行工具(基础监控)

kubectl是Kubernetes自带的命令行工具,无需额外安装,适合快速查看集群状态、资源健康情况及日志。

  • 查看节点状态kubectl get nodes(显示节点名称、状态、版本等信息,Ready状态表示节点正常)。
  • 查看Pod状态kubectl get pods --all-namespaces(查看所有命名空间的Pod运行状态,Running表示正常,Pending表示未调度或拉取镜像中)。
  • 查看Deployment状态kubectl get deployments --all-namespaces(查看Deployment的副本数、更新状态等)。
  • 查看集群事件kubectl get events --all-namespaces(显示集群中的异常事件,如Pod调度失败、节点NotReady等)。
  • 查看Pod日志kubectl logs <pod-name> -n <namespace>(查看指定Pod的容器日志,用于排查应用层问题)。

2. 使用Kubernetes Dashboard(Web可视化)

Kubernetes Dashboard是官方提供的Web界面,适合直观管理集群及查看资源状态。

  • 安装Dashboard:执行kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml(部署最新版本的Dashboard)。
  • 获取访问Token:运行kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}'),复制token字段值(用于登录)。
  • 访问Dashboard:在浏览器中输入https://<CentOS-node-ip>:30000(默认端口30000),粘贴Token登录即可查看集群资源(如Pod、Deployment、节点等)的实时状态。

3. Prometheus + Grafana(核心监控组合)

Prometheus(开源监控系统)负责收集、存储K8s集群的指标数据,Grafana(开源可视化工具)负责将数据转换为直观的仪表盘,是企业级监控的主流方案。

  • 部署Prometheus
    推荐使用Helm Chart快速部署(简化配置):
    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm install prometheus prometheus-community/kube-prometheus-stack -n monitoring --create-namespace
    
    该命令会自动部署Prometheus Server、Alertmanager(告警组件)、Grafana及K8s相关的ServiceMonitor(定义监控目标)。
  • 部署Grafana并连接Prometheus
    若未通过Helm部署Grafana,可手动执行kubectl apply -f https://raw.githubusercontent.com/prometheus-community/helm-charts/main/charts/grafana/templates/grafana.yaml;登录Grafana(默认地址http://<CentOS-node-ip>:3000,账号admin/admin),添加Prometheus数据源(URL为http://prometheus-server.monitoring.svc.cluster.local:80)。
  • 导入仪表盘:在Grafana中搜索“Kubernetes Cluster Monitoring”(ID:16398),导入预置的集群监控仪表盘,即可查看节点资源、Pod状态、API服务器性能等指标。

4. 辅助监控工具(补充关键指标)

  • cAdvisor:Kubernetes内置的容器资源监控工具(通过kubelet自动部署,默认端口4194),用于收集单个容器的CPU、内存、磁盘及网络使用情况,无需额外安装。可通过kubectl proxy访问http://localhost:8001/api/v1/nodes/<node-name>/proxy/metrics/cadvisor查看指标。
  • kube-state-metrics:监听K8s API服务器,生成集群资源状态指标(如Deployment的副本数、Pod的调度状态、节点的可用性等),补充Prometheus的监控维度。部署命令:kubectl apply -f https://github.com/kubernetes-sigs/kube-state-metrics/releases/latest/download/components.yaml
  • Node Exporter:部署为DaemonSet,收集节点级系统指标(如CPU利用率、内存使用、磁盘I/O、网络流量等),填补Prometheus对节点本身的监控空白。可通过Helm Chart部署:helm install node-exporter prometheus-community/node-exporter -n monitoring

5. 第三方监控工具(可选增强)

若需要更丰富的功能(如AI驱动的告警、多集群监控),可选择第三方工具:

  • Datadog:提供K8s专用监控模块,支持容器、节点、应用的实时监控及告警,集成Prometheus数据源。
  • New Relic:支持K8s性能分析、分布式追踪及应用性能监控(APM),适合微服务架构。
  • DeepSeek:专为K8s设计的深度监控与诊断工具,支持根因分析(RCA)及性能优化建议。

以上方法可根据集群规模(如小型集群用kubectl+Dashboard,中大型集群用Prometheus+Grafana)、需求(如是否需要告警、可视化复杂度)灵活选择组合,实现对CentOS上K8s集群的全面监控。

0