k8s eviction机制

本文深入探讨了Kubernetes中EvictionManager的工作原理,详细解释了如何通过soft和hard阈值判断节点资源是否处于饥饿状态,以及如何根据GracePeriod成员的设置决定Pod的驱逐策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kubelete端:

创建eviction manager然后一直的去执行synchronize,synchronize函数会去计算node的是否超过阈值,没有则返回,过一段时间在计算,有超过则killpod.hardEvicthon则过一段时间再去

计算节点阈值情况:
// determine the set of resources under starvation
starvedResources := reclaimResources(thresholds)
if len(starvedResources) == 0 {
   glog.V(3).Infof("eviction manager: no resources are starved")
   return
}

soft的eviction是通过过滤graceperiod时间还是满足threshold,则进行evict

hard的监控到超过threshold则直接进行evict

综上:soft和hard的处理是通过threshold的GracePeriod成员,并设置其值,0表示hard,其他表示soft,并根据这个threshold来排序activepod,每次执行synchronize只删除一个pod.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值