温馨提示×

centos k8s部署如何监控集群状态

小樊
45
2025-11-01 21:20:32
栏目: 智能运维

1. 使用kubectl命令行工具(基础监控)
kubectl是Kubernetes自带的命令行工具,可直接与集群交互,获取核心状态信息,适合快速排查问题。常用命令包括:

  • 查看节点状态kubectl get nodes(显示节点是否处于“Ready”状态,确认节点是否正常加入集群);
  • 查看Pod状态kubectl get pods --all-namespaces(查看所有命名空间的Pod运行状态,如“Running”“Pending”“Error”);
  • 查看Deployment状态kubectl get deployments --all-namespaces(确认应用部署的副本数、更新状态);
  • 查看集群事件kubectl get events --all-namespaces(获取集群内的异常事件,如Pod调度失败、节点资源不足);
  • 查看Pod实时日志kubectl logs <pod-name> -n <namespace>(查看指定Pod的日志,辅助定位应用问题)。

2. 部署Prometheus+Grafana(核心监控与可视化)
Prometheus是开源时间序列数据库,专为动态云环境设计,可收集K8s集群的指标数据(如节点CPU/内存使用率、Pod资源占用、服务响应时间);Grafana是可视化工具,可将Prometheus中的数据转化为直观的仪表盘。

  • 安装Prometheus:通过Helm Chart快速部署(推荐使用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
    
  • 安装Grafana:同样通过Helm部署,并配置Prometheus为数据源:
    helm install grafana grafana/grafana
    
    登录Grafana(默认地址:http://<node-ip>:3000,账号admin/admin),添加Prometheus数据源后,导入K8s监控仪表盘(如ID:1860、4076)。
  • 优势:支持自定义指标查询、告警规则(如节点内存使用率超过80%触发告警),适合大规模集群的长期监控。

3. 利用cAdvisor(内置容器监控)
cAdvisor(Container Advisor)是Kubernetes内置的容器资源监控工具,集成在kubelet中,无需额外安装。它可实时采集容器级别的指标(CPU、内存、磁盘IO、网络流量),并通过Kubelet的API暴露给Prometheus等工具。

  • 验证方法:直接访问节点的/metrics接口(如http://<node-ip>:10250/metrics/cadvisor),可看到容器的资源使用数据。

4. 部署kube-state-metrics(资源状态指标)
kube-state-metrics从Kubernetes API对象生成指标,而无需通过监控Kubernetes API服务器进行修改。它着重于内部各种对象(如Deployment、Node、Pod、StatefulSet)的运行状况,提供如“Deployment副本数是否达标”“Pod是否处于Pending状态”等指标,补充了Prometheus的基础指标,增强了监控的深度。

5. 使用Kubernetes Dashboard(Web可视化)
Kubernetes Dashboard是官方提供的Web-based UI,提供集群的实时监控和管理功能,适合需要图形化界面的用户。

  • 安装Dashboard
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
    
  • 访问Dashboard:打开浏览器,访问https://<node-ip>:30000,使用默认用户名admin和通过以下命令获取的Token登录:
    kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
    
    登录后可查看节点、Pod、Deployment等资源的实时状态,以及集群事件。

6. 第三方监控工具(企业级增强)

  • Datadog:提供实时指标、日志和跟踪可视化,自动发现和监控Kubernetes组件,支持异常检测和警报,可与CI/CD工具集成;
  • New Relic:基于云的监控平台,为Kubernetes环境提供应用程序、容器和基础设施的全面监控,支持容量规划和优化;
  • Dynatrace:全栈监控平台,从应用程序到基础设施层提供端到端可见性,支持自动发现和监控Kubernetes组件,具备AI驱动的问题识别功能。

7. 终端工具(轻量级交互)

  • K9s:基于curses的全屏终端UI工具,可实时监控集群状态(如Pod、Deployment、节点),支持快速查看日志、执行Shell命令,适合喜欢终端操作的用户;
  • Kubetail:将多个Pod的日志聚合到一个流中,方便查看分布式应用的日志;
  • Kubewatch:监控K8s事件(如Pod创建、删除),并将通知发送到Slack、Email等渠道,辅助团队协作。

0