kubernetes-pod的驱逐策略

本文解析了Kubernetes中Pod在节点故障时的驱逐机制,包括驱逐时机、执行者、时间设置变化及资源调度的优先级。重点介绍了1.13版本后taint-based-evictions和tolerations的应用,以及资源不足时的内存、存储和inode考虑。

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

1.当node节点出现故障的时候pod怎么办?

kubernetes提供了pod eviction,在某些情况下node出现NotReady,资源不足的时候,需要将node上面的pod驱逐至其他节点,用于保障业务的正常运行,但是驱逐的行为并不是“立即”执行,给了一段的缓冲时间,超过这个时间才会将pod驱逐。

2.驱逐pod是谁来执行,怎么执行?

2.1 谁来执行

Kube-controller-manager会周期性的检查所有node的状态,当node处于NotReady状态一定时间后将node上面的pod进行驱逐

2.2 如何执行

kubernetes 1.13版本之前 pod-eviction-timeout NotReady 状态node超过该时间后,执行驱逐,默认 5 min
kubernetes 1.13版本之后 集群开启 TaintBasedEvictionsTaintNodesByCondition 功能,即taint-based-evictions,即节点若失联或者出现各种异常情况,k8s会自动为node打上污点,同时为pod默认添加如下容忍设置:

tolerations:
 1. effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
 2. effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300

即各pod可以独立设置驱逐容忍时间。

3.当node资源不足时,并不是一股脑驱逐所有pod,按照一定的优先级进行驱逐

1.memory.available:节点可用内存
2. nodefs.available:节点根盘可用存储空间
3. nodefs.inodesFree:节点inodes可用数量
4. imagefs.available:镜像存储盘的可用空间
5. imagefs.inodesFree:镜像存储盘的inodes可用数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值