pod驱逐时间主要由以下四个参数决定

node-status-update-frequency:节点状态更新频率,kubelet多长时间向master发布一次节点状态,默认为10s

node-monitor-period:节点监控周期,controller manager 周期性的检查kubelet上报上来的状态,默认为5s

node-monitor-grace-period:节点监控宽限周期,controller manager检查node状态宽限期,超过这个时间,node依然未恢复,则标记node为不健康状态,默认为40s,必须为node-status-update-frequency的N倍,N为允许kubelet发布节点状态的重试次数

pod-eviction-timeout:pod驱逐时间,controller manager开始驱逐不健康node上的pod,默认速度为 0.1pod/s ,默认为5m


以下为举例说明:

快速响应的配置场景,但是同时会产生频繁的node update事件,加重etcd的负担

参数

node-status-update-frequency

4s

node-monitor-period

2s

node-monitor-grace-period

12s

pod-eviction-timeout

30s

1.kubelet每4s更新一次自身状态,每分钟更新15次,如果有1000台node,则每分钟有15000次node状态更新

2.controller manager每2s检查一次node状态,如果12s后node状态依然异常(因kubelet每4s更新一次,既12s controller可以获取三次node状态),则标记node状态为不健康

3.在经历pod-eviction-timeout,即30s后,开始驱逐node上的pod