1. 巡检目标
-
确保集群控制平面(Control Plane)和节点(Worker Nodes)运行正常。
-
验证网络、存储、日志及监控系统功能完整。
-
识别资源瓶颈(CPU、内存、存储、网络)。
-
检查安全配置(RBAC、证书、Pod安全策略)。
-
确保备份与恢复机制有效。
2. 节点状态检查
2.1 节点健康状态
bash
复制
下载
kubectl get nodes -o wide # 检查所有节点状态是否为“Ready” kubectl describe node <node-name> # 查看节点详情(资源分配、事件、污点等) kubectl top nodes # 节点资源使用率(需Metrics Server支持)
预期结果:
-
所有节点状态为
Ready
。 -
CPU/内存使用率低于80%,无持续OOM事件。
2.2 系统服务与内核参数
bash
复制
下载
# 登录到节点检查以下服务状态 systemctl status kubelet containerd # K8s 1.30+ 默认使用containerd journalctl -u kubelet --since "24h" # 查看Kubelet日志 sysctl net.ipv4.ip_forward # 确保网络转发已启用(应为1)
3. 控制平面(Control Plane)检查
3.1 核心组件状态
bash
复制
下载
kubectl get pods -n kube-system -l tier=control-plane # 检查以下组件: # - kube-apiserver # - kube-controller-manager # - kube-scheduler # - etcd-*(若使用独立部署)
预期结果:
-
所有Pod状态为
Running
,且副本数符合预期(如单节点部署则为1)。
3.2 etcd集群健康
bash
复制
下载
# 登录到etcd节点执行(需证书路径) ETCDCTL_API=3 etcdctl \ --endpoints=https://127.0.0.1:2379 \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt \ --key=/etc/kubernetes/pki/etcd/server.key \ endpoint health
预期结果:
-
所有etcd节点返回
healthy
,无高延迟或连接错误。
4. 网络检查
4.1 网络插件状态
bash
复制
下载
kubectl get pods -n kube-system -l app.kubernetes.io/name=<network-plugin> # 如cilium、calico kubectl get networkpolicies -A # 检查网络策略配置 kubectl get services -A # 验证服务Endpoint
4.2 DNS与网络连通性
bash
复制
下载
kubectl get pods -n kube-system -l k8s-app=kube-dns # CoreDNS状态 kubectl exec -it <test-pod> -- nslookup kubernetes.default # DNS解析测试 kubectl exec -it <test-pod> -- curl -I <service-ip>:<port> # 服务连通性测试
5. 存储检查
5.1 PV/PVC状态
bash
复制
下载
kubectl get pv -o wide # 检查PV绑定状态 kubectl get pvc -A # 检查PVC是否Bound kubectl describe pvc <pvc-name> -n <namespace> # 查看PVC事件
5.2 CSI驱动检查
bash
复制
下载
kubectl get pods -n kube-system -l app.kubernetes.io/name=<csi-driver-name> kubectl logs -n kube-system <csi-controller-pod> --tail=50 # CSI控制器日志
6. 日志与监控
6.1 集群日志
bash
复制
下载
kubectl logs -n <namespace> <pod-name> --previous # 查看崩溃容器的日志 kubectl get pods -n logging-system # 假设使用EFK/ELK
6.2 Prometheus与告警
bash
复制
下载
kubectl get pods -n monitoring-system # Prometheus、Alertmanager kubectl get prometheusrules -n monitoring-system # 检查告警规则 kubectl get silences -n monitoring-system # 查看静默告警
7. 安全与合规
7.1 证书有效期
bash
复制
下载
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -dates # 检查控制平面证书 kubectl get csr -A # 处理Pending状态的CSR
7.2 RBAC与Pod安全
bash
复制
下载
kubectl get clusterrolebindings -A | grep <user/group> # 权限分配检查 kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"/"}{.metadata.name}{"\t"}{.spec.securityContext}{"\n"}{end}' # Pod安全上下文
8. 备份与恢复
8.1 etcd备份
bash
复制
下载
# 手动备份(需在etcd节点执行) ETCDCTL_API=3 etcdctl snapshot save snapshot.db \ --endpoints=https://127.0.0.1:2379 \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt \ --key=/etc/kubernetes/pki/etcd/server.key
8.2 应用数据备份
-
根据应用类型(如MySQL、MongoDB)执行定期数据备份。
9. 性能优化建议
-
资源分配:
bash
复制
下载
kubectl top pods -A --sort-by=cpu # 检查高负载Pod kubectl describe pod <pod-name> # 查看资源请求/限制
-
HPA配置:
bash
复制
下载
kubectl get hpa -A # 检查自动扩缩容策略
10. 常见问题处理
问题1:节点状态为“NotReady”
-
检查项:
-
网络连通性(
ping
、traceroute
)。 -
Kubelet服务状态(
systemctl status kubelet
)。 -
磁盘空间(
df -h
)。
-
-
修复命令:
bash
复制
下载
systemctl restart kubelet # 重启Kubelet服务
问题2:Pod处于“Pending”状态
-
检查项:
-
资源不足(
kubectl describe pod <pod-name>
查看事件)。 -
PVC绑定失败(
kubectl describe pvc <pvc-name>
)。 -
节点亲和性/污点配置。
-
附录:参考文档
通过定期执行以上检查,可确保Kubernetes集群的稳定性。建议结合自动化工具(如Prometheus告警、CronJob定期巡检)实现高效运维。