缩容优先级
Pod在缩容时,会按照如下优先级缩容:
- 未被调度的Pod
- Pod Pending < Pod Unknown < Pod Running
- Not ready < ready
- 带有特定标签的Pod,cce.io/priordeletion
- Doubled up < not doubled up 优先缩容Pod多的节点
- 缩容Ready时间较长的Pod
- 重启次数多的Pod
- createtimestamp较前的Pod
优先缩容老实例生效说明
- 优先缩容老实例 不生效 :
按照上述优先级,如果节点数为2(同规格),Deployment实例数为5时(可以是任意奇数个),此时A节点分布3个Pod,B节点分布2个Pod;如果此时将实例数缩容至3个,上述步骤中会先执行5,此时根据Pod判断,会确定缩容的节点为A;再执行6,缩容一个老实例后发现目前已无老实例,且限定了缩容节点为A,此时会缩容一个新实例。
- 优先缩容老实例 生效 :如果节点数为2(同规格),Deployment实例数为6时(可以是任意偶数个),此时A、B节点均分布3个Pod;如果此时将实例数缩容至4个,此时代码会判定不符合5的条件,此时根据Pod判断,会确定缩容的节点为A、B;再执行6,回去将两个节点上的实例排序,成功缩容两个老的实例。