通过搜索和观察集群的行为,看来如果我们有一个 HorizontalPodAutoscaler ,当它缩小时,它会选择最年轻的Pod,或者至少最年轻的豆荚之一。
有没有一种方法可以缩小最老的?
缩减最新版本的依据是什么?我们最终拥有许多可以在很短的时间内生存的豆荚,还有一些可以长期生存的豆荚。 (那些寿命很长的Pod最终会占用大量内存。)
或者也许我们可以随机选择它?
选择最年轻的Pod导致的另一个问题是,我们对具有特征的节点具有亲和力,它将旧的Pod留在其他节点上,并且总是按比例缩小我们想要它们的节点上的
答案 0 :(得分:0)
我相信这种行为与HPA无关,而与控制器有关。
您可以看到here,可以看到此规则有不同的条件:
// 1.如果仅将一个Pod分配给一个节点,则没有分配的Pod //被分配的是在pod之前的
// 2.如果Pod的阶段不同,则挂起的Pod在其阶段的Pod之前出现 //未知,并且相位未知的Pod在运行的pod之前。
// 3.如果恰好有一个Pod已准备就绪,则尚未准备就绪的Pod会出现 //在准备好的吊舱之前。
// 4.如果容器的等级不同,则具有较高等级的容器排在容器之前 //排名较低。
// 5.如果两个吊舱均已准备就绪,但尚未准备好相同数量的 //时间,准备时间较短的广告连播到来 //在准备就绪的豆荚之前。
// 6.如果一个容器中的容器重新启动的次数超过了 //另一个容器,容器具有更多重启的容器 //在另一个Pod之前。
// 7.如果吊舱的创建时间不同,则是最近创建的吊舱 //位于较旧的吊舱之前。
您可以看到相关的here
所述。