在Kubernetes集群中调优节点健康检查配置需关注以下核心点:
-
调整kubelet心跳参数
--node-status-update-frequency
:控制kubelet上报状态的频率(默认10秒),网络不稳定时可缩短至5-8秒--node-status-report-frequency
:故障恢复时状态重试上报间隔,建议设为心跳周期的1/3
-
控制平面参数优化
--node-monitor-grace-period
(默认40秒):应大于kubelet状态更新间隔 × 4 + 网络抖动缓冲
--pod-eviction-timeout
(默认5分钟):根据业务容忍度调整(如生产环境建议3-5分钟)
-
资源阈值配置
- 通过
--eviction-hard
设置内存/磁盘驱逐阈值(例如memory.available<500Mi,nodefs.available<10%) - 配置
--eviction-pressure-transition-period
(默认5m0s)控制节点压力状态切换延迟
- 通过
-
网络健康检测增强
- 部署Node Problem Detector监控底层硬件/内核问题
- 配置
--node-ip
明确指定kubelet使用的稳定网络接口
-
探针联动机制
- 就绪探针(Readiness Probe)超时应小于kubelet状态检查间隔
- 存活探针(Liveness Probe)失败次数阈值需与容器启停时间匹配
验证方法:
- 使用
kubectl get nodes -o wide --watch
观察节点状态转换 - 通过Prometheus监控
kube_node_status_condition
指标 - 模拟网络分区测试故障切换效果
注意:调整后需滚动重启kubelet,生产环境建议先灰度验证配置变更。