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