在CentOS系统上监控Kubernetes(K8s)集群的部署状态,需结合命令行工具(快速排查)、可视化工具(直观展示)、告警系统(主动通知)三类方案,覆盖从基础到高级的监控需求。以下是具体方法:
kubectl是K8s官方命令行工具,可直接与集群API交互,快速查看部署状态,适合日常运维和故障排查。
Ready状态为正常)。kubectl get nodes
Running为正常,Pending表示未调度,CrashLoopBackOff表示容器崩溃)。kubectl get pods --all-namespaces
AVAILABLE列表示可用副本数)。kubectl get deployments --all-namespaces
describe命令获取资源的具体事件(如调度失败、镜像拉取错误)。kubectl describe pod <pod-name> -n <namespace> # 查看Pod详情
kubectl describe deployment <deployment-name> -n <namespace> # 查看Deployment详情
kubectl get events --all-namespaces
这些命令能快速定位部署中的常见问题(如Pod无法启动、副本数不足),是运维人员的基础工具。
Kubernetes Dashboard是官方提供的Web界面,可直观展示集群资源状态,适合需要图形化管理的场景。
kubectl应用官方YAML文件部署。kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
https://<CentOS节点IP>:30000,输入Token登录。exec进入Pod);Prometheus(监控系统)+Grafana(可视化平台)是K8s生态中最流行的监控组合,支持全面的指标采集、灵活的可视化和告警功能,适合生产环境。
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/kube-prometheus-stack
sudo yum install -y grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
登录Grafana(http://<CentOS节点IP>:3000,默认账号admin/admin),添加Prometheus数据源。Kubernetes Cluster Monitoring,ID:193);alertmanager组件设置告警规则(如Pod连续重启超过3次时发送邮件/Slack通知)。若需要开箱即用的企业级功能(如自动发现集群、多租户支持、高级告警),可选择以下第三方工具:
部署状态的异常往往伴随日志错误,需结合日志分析工具定位问题:
kubectl查看Pod的标准输出日志(-f参数实时跟踪)。kubectl logs <pod-name> -n <namespace>
kubectl logs -f <pod-name> -n <namespace> # 实时日志
journalctl -u kubelet -f
以上方法覆盖了从基础命令行到企业级可视化的监控需求,可根据集群规模(如测试环境用Dashboard+命令行,生产环境用Prometheus+Grafana+第三方工具)和预算选择合适的方案。