为什么kubernetes Horizo​​ntalPodAutoscaler会按比例缩小最小的Pod?

时间:2020-10-20 11:38:27

标签: kubernetes autoscaling

通过搜索和观察集群的行为,看来如果我们有一个 Horizo​​ntalPodAutoscaler ,当它缩小时,它会选择最年轻的Pod,或者至少最年轻的豆荚之一。

有没有一种方法可以缩小最老的?

缩减最新版本的依据是什么?我们最终拥有许多可以在很短的时间内生存的豆荚,还有一些可以长期生存的豆荚。 (那些寿命很长的Pod最终会占用大量内存。)

或者也许我们可以随机选择它?

选择最年轻的Pod导致的另一个问题是,我们对具有特征的节点具有亲和力,它将旧的Pod留在其他节点上,并且总是按比例缩小我们想要它们的节点上的

1 个答案:

答案 0 :(得分:0)

我相信这种行为与HPA无关,而与控制器有关。

您可以看到here,可以看到此规则有不同的条件:

// 1.如果仅将一个Pod分配给一个节点,则没有分配的Pod //被分配的是在pod之前的

// 2.如果Pod的阶段不同,则挂起的Pod在其阶段的Pod之前出现 //未知,并且相位未知的Pod在运行的pod之前。

// 3.如果恰好有一个Pod已准备就绪,则尚未准备就绪的Pod会出现 //在准备好的吊舱之前。

// 4.如果容器的等级不同,则具有较高等级的容器排在容器之前 //排名较低。

// 5.如果两个吊舱均已准备就绪,但尚未准备好相同数量的 //时间,准备时间较短的广告连播到来 //在准备就绪的豆荚之前。

// 6.如果一个容器中的容器重新启动的次数超过了 //另一个容器,容器具有更多重启的容器 //在另一个Pod之前。

// 7.如果吊舱的创建时间不同,则是最近创建的吊舱 //位于较旧的吊舱之前。

您可以看到相关的here

此外,似乎该功能正在逐步实现,如herehere

所述。
相关问题