监控Ubuntu上的Kubernetes状态需结合命令行工具(快速排查)与可视化工具(全局洞察),以下是具体方法:
命令行是Kubernetes监控的基础,通过kubectl可快速获取节点、Pod、组件等状态信息。
kubectl get nodes:列出所有节点的名称、状态(Ready/NotReady)、版本及IP地址。kubectl describe node <节点名>:查看节点详细信息,包括Conditions(如DiskPressure、MemoryPressure)、资源使用情况及事件记录。kubectl get pods --all-namespaces:查看所有命名空间的Pod状态(Running/Pending/Error等)。kubectl describe pod <pod-name> -n <命名空间>:查看Pod的详细信息,包括容器状态、重启次数、事件(如镜像拉取失败)。kubectl get events --watch:实时查看集群中的事件(如节点加入、Pod调度失败),帮助快速定位问题。kubectl get pods -n kube-system:查看Kubernetes系统组件(如kube-apiserver、etcd、kube-controller-manager)的运行状态,确保核心组件正常。可视化工具可将集群状态以图表形式呈现,便于长期监控和趋势分析。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml,创建Dashboard所需的Deployment和Service。kubectl proxy启动代理,然后在浏览器访问http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/。cluster-admin权限(如kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin),获取Token后登录。登录后可查看节点、Pod、Deployment等资源的状态及详情。kube-prometheus项目快速部署(包含Prometheus、Node Exporter、kube-state-metrics等组件)。Kubernetes Cluster Monitoring),可查看节点资源利用率、Pod状态分布、网络流量等可视化图表。kubectl proxy访问http://<节点IP>:8080/metrics查看原始指标,或通过Prometheus抓取数据进行可视化。结合Alertmanager可实现监控告警,当节点宕机、Pod崩溃或资源不足时,通过邮件、短信等方式通知运维人员。例如,使用kube-prometheus方案可快速部署Alertmanager,并配置告警规则(如NodeFilesystemAlmostFull、PodCrashLoopBackOff)。
以上方法覆盖了从基础命令到专业可视化的全链路监控,可根据集群规模和需求选择合适的工具组合。