在Debian系统上监控Kubernetes(K8s)部署状态,需结合命令行工具(快速排查)与可视化工具(长期监控)两种方式,覆盖从节点、Pod到Deployment的全栈状态检查。以下是具体方法:
kubectl是K8s官方命令行工具,可直接与集群API交互,获取部署状态的实时信息,适合快速排查问题。
Ready状态为正常)。kubectl get nodes
Running为正常,Pending表示未调度,CrashLoopBackOff表示容器启动失败)。kubectl get pods --all-namespaces
AVAILABLE列表示可用副本数)。kubectl get deployments --all-namespaces
kubectl describe deployment <deployment-name> -n <namespace>
kubectl logs <pod-name> -n <namespace>
kubectl是否正确配置并连接到集群。kubectl cluster-info
以上命令需提前配置kubectl(通过~/.kube/config文件),确保其指向正确的Debian上的K8s集群。
Kubernetes Dashboard是官方提供的Web界面,可直观展示集群状态,适合新手或不熟悉命令行的用户。
kubectl应用官方YAML文件部署Dashboard。kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
kubectl proxy启动代理;http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/;kubectl create serviceaccount dashboard-admin-sa创建管理员账号并绑定权限(参考K8s官方文档),登录后即可查看集群状态。Prometheus(监控数据收集)+ Grafana(可视化)是K8s生态中最流行的监控组合,适合生产环境,支持自定义指标、告警和历史数据查询。
helm repo update
helm install prometheus stable/prometheus-operator --namespace monitoring
helm install grafana stable/grafana --namespace monitoring
kubectl port-forward -n monitoring svc/grafana 3000:80
prometheus-kube-prometheus-prometheus服务正常运行(可通过kubectl get svc -n monitoring验证)。http://localhost:3000,使用默认账号admin/admin登录;http://prometheus-operated.monitoring.svc.cluster.local:9090);kube-state-metrics是一个K8s组件,用于监听API Server并生成资源状态指标(如Deployment的副本数、Pod的就绪状态),这些指标可被Prometheus收集,增强监控数据的丰富性。
kubectl apply -f https://github.com/kubernetes-sigs/kube-state-metrics/releases/latest/download/components.yaml
scrape_configs中添加kube-state-metrics服务(通常位于monitoring命名空间),确保Prometheus能收集其指标。若需要更高级的功能(如日志集成、异常检测),可选择第三方工具:
以上方法覆盖了从基础到高级的K8s部署状态监控需求,可根据团队规模、技术栈和预算选择合适的方案。例如,小型团队可从kubectl+ Dashboard入手,中大型团队则建议使用Prometheus+Grafana+kube-state-metrics的组合。