K8S健康检查巡检清单-运维篇

Lear 2025-08-06 11:10:00
Categories: > Tags:

K8S健康检查巡检清单-运维篇

以下是一份基于Kubernetes生产实践的健康检查巡检清单,涵盖集群核心组件、节点、工作负载、存储、网络等关键维度,结合具体参数与阈值,供运维人员系统化执行。

一、集群核心组件巡检

检查项 检查命令/方法 参数与阈值 风险等级
API Server健康 kubectl get componentstatuses 所有组件状态为Healthy 高(若异常则集群不可用)
etcd集群状态 etcdctl endpoint health 所有成员返回health: true,无超时响应
Controller Manager kubectl get pods -n kube-system Pod状态为RunningREADY=1/1
Scheduler 同上 同上
插件状态 kubectl get pods -n <插件命名空间> kube-prometheus-stackcorednslog-agent等核心插件运行正常,无OOM事件

二、节点健康巡检

检查项 检查命令/方法 参数与阈值
节点就绪状态 kubectl get nodes 所有节点状态为Ready(≥2个NotReady为高风险)
资源使用率 kubectl top nodes CPU/Memory: 正常:<70% 低风险:≥70% 中风险:≥85% 高风险:≥95%
磁盘压力 kubectl describe node | grep DiskPressure 所有节点DiskPressure=False,磁盘使用率<80%
OOM事件 kubectl get events –field-selector=reason=OOMKilled 24小时内无OOM事件
节点间通信 ping或网络监控工具 延迟<50ms(无丢包),>150ms且丢包为高风险

三、工作负载与Pod状态

检查项 检查命令/方法 参数与阈值
Pod异常状态 kubectl get pods –all-namespaces | grep -Ev “Running|Completed” PendingCrashLoopBackOffError
容器重启次数 kubectl get pods -o json | jq ‘.items[] | select(.status.containerStatuses[].restartCount > 5)’ 重启次数≤5(频繁重启需排查)
资源请求/限制 kubectl describe pod Request水位:<80% Limit水位:<150%
探针配置 kubectl get pod -o yaml | grep -A 10 “livenessProbe” 所有容器配置存活探针(Liveness)就绪探针(Readiness)
Pod资源使用 kubectl top pods CPU/内存24小时内峰值<80%,无OOM事件

四、存储系统健康检查

存储类型 检查项 参数与阈值
PVC/PV 绑定状态 kubectl get pvc | grep -v Bound:所有PVC状态为Bound
容量使用率 PVC使用率<80%(≥80%需扩容)
Redis 内存使用率 <70%(≥95%为高风险)
连接数 <1024(≥4096为高风险)
PostgreSQL 数据库连接数 <1024(≥4096为高风险)
磁盘空间 <80%(≥80%需清理)
Elasticsearch 集群状态 greenyellow为低风险,red为高风险)

五、网络与服务状态

检查项 检查命令/方法 参数与阈值
Service状态 kubectl get svc –all-namespaces 所有Service的ClusterIP可访问,无头服务(Headless)配置正确
Ingress控制器 kubectl get pods -n ingress-nginx 控制器Pod状态为Running,规则生效
DNS解析 在集群内创建临时Pod执行nslookup kubernetes.default 解析延迟<5s,无失败请求(coredns P99时延<5s)
Nginx连接数 监控worker_connections <1024(≥4096为高风险)

六、配置与安全审计

  1. 证书有效期
    • 检查API Server、etcd证书:openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -enddate
    • 要求:剩余有效期 > 3个月。
  2. Taints/Tolerations
    • kubectl describe node \| grep Taints:避免过多Taint导致调度失败。
  3. 资源配额
    • 租户云硬盘/ECS配额使用率 <90%(≥90%需扩容)。

七、健康检查探针配置(关键!)

探针类型 推荐配置 作用与风险
Liveness 方式:TCP 延迟时间:≥应用启动时间 周期:10–30秒 失败阈值:3 失败触发容器重启;延迟过短会导致启动循环重启(如Java应用需>2分钟)
Readiness 方式:HTTP(返回200) 延迟时间:>应用启动时间 周期:1秒 失败阈值:1 失败则切出流量;快速切流避免流量损失,但需防雪崩(结合HPA使用)

最佳实践

八、外部依赖与配额

九、巡检工具推荐

  1. Popeye:自动扫描资源利用率、标签规范、安全配置,输出颜色分级报告。
  2. 集群内置诊断(如华为云UCS):定时巡检Master高可用、Request/Limit水位。
  3. Prometheus规则(示例):

yaml

# 内存泄漏警报(堆内存>80%持续10分钟)

- alert: MemoryLeak

expr: heap_used_percent > 80

for: 10m

labels:

severity: warning

``` :cite[8]

执行建议

此清单覆盖生产环境90%以上风险点,结合具体集群规模调整阈值。完整巡检项可参考[华为云健康诊断文档]及[K8S日常巡检指南]。