周期性检查节点状态,每当节点状态为 NotReady,并且超出 podEvictionTimeout 时间后,就把该节点上的 pod 全部驱逐到其它节点,其中具体驱逐速度还受驱逐速度参数,集群大小等的影响。
Kubelet 周期性检查本节点的内存和磁盘资源,当可用资源低于阈值时,则按照优先级驱逐 pod
eviction-hard:描述一系列的驱逐阈值(比如说 memory.available<1Gi),一旦达到这一阈值,就会触发对 Pod 的驱逐
--eviction-hard=memory.available<500Mi,nodefs.available<1Gi,imagefs.available<100Gi
复制代码
housekeeping-interval
node-status-update-frequency
如果一个节点的状况在软阈值的上下波动,但是又不会超过他的宽限期,将会导致该节点的状态持续的在是否之间徘徊,最终会影响降低调度的决策过程。
要防止这种状况,下面的标志可以用来通知 Kubelet,在脱离压力状态之前,必须等待。
eviction-pressure-transition-period 定义了在跳出压力状态之前要等待的时间。
Kubelet 在把压力状态设置为 False 之前,会确认在周期之内,该节点没有达到逐出阈值。
--eviction-minimum-reclaim="memory.available=0Mi,nodefs.available=500Mi,imagefs.available=2Gi"
复制代码
要缓和这种状况,Kubelet 能够对每种资源定义 minimum-reclaim。kubelet 一旦发现了资源压力,就会试着回收至少 minimum-reclaim 的资源,使得资源消耗量回到期望范围。
Kubelet 会按照下面的标准对 Pod 的驱逐行为进行评判:
接下来,Pod 按照下面的顺序进行驱逐:
--system-reserved=memory=1.5Gi,ephemeral-storage=1Gi
--system-reserved-cgroup=/system.slice
--enforce-node-allocatable=pods,kube-reserved,system-reserve
--kube-reserved=cpu=1000m,memory=8Gi,ephemeral-storage=1Gi
--kube-reserved-cgroup=/kubelet.service
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。