在CentOS环境中监控Kubernetes(k8s)集群,需结合命令行工具(快速排查)、可视化工具(趋势分析)及告警系统(主动通知),覆盖节点、容器、编排组件、应用等多维度指标。以下是具体方法及实践步骤:
kubectl是Kubernetes自带的命令行工具,无需额外安装,适合快速查看集群状态、资源健康情况及日志。
kubectl get nodes(显示节点名称、状态、版本等信息,Ready状态表示节点正常)。kubectl get pods --all-namespaces(查看所有命名空间的Pod运行状态,Running表示正常,Pending表示未调度或拉取镜像中)。kubectl get deployments --all-namespaces(查看Deployment的副本数、更新状态等)。kubectl get events --all-namespaces(显示集群中的异常事件,如Pod调度失败、节点NotReady等)。kubectl logs <pod-name> -n <namespace>(查看指定Pod的容器日志,用于排查应用层问题)。Kubernetes Dashboard是官方提供的Web界面,适合直观管理集群及查看资源状态。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml(部署最新版本的Dashboard)。kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}'),复制token字段值(用于登录)。https://<CentOS-node-ip>:30000(默认端口30000),粘贴Token登录即可查看集群资源(如Pod、Deployment、节点等)的实时状态。Prometheus(开源监控系统)负责收集、存储K8s集群的指标数据,Grafana(开源可视化工具)负责将数据转换为直观的仪表盘,是企业级监控的主流方案。
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(定义监控目标)。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)。kubectl proxy访问http://localhost:8001/api/v1/nodes/<node-name>/proxy/metrics/cadvisor查看指标。kubectl apply -f https://github.com/kubernetes-sigs/kube-state-metrics/releases/latest/download/components.yaml。helm install node-exporter prometheus-community/node-exporter -n monitoring。若需要更丰富的功能(如AI驱动的告警、多集群监控),可选择第三方工具:
以上方法可根据集群规模(如小型集群用kubectl+Dashboard,中大型集群用Prometheus+Grafana)、需求(如是否需要告警、可视化复杂度)灵活选择组合,实现对CentOS上K8s集群的全面监控。