【发布时间】:2021-02-03 05:37:24
【问题描述】:
通过搜索和观察我们集群的行为,似乎如果我们有一个 HorizontalPodAutoscaler,当它缩小时,它会选择最年轻的 pod,或者至少最年轻的豆荚之一。
有没有办法让它缩小最旧的?
缩小最新版本的基本原理是什么?我们最终会得到许多寿命很短的豆荚,还有一些寿命很长的豆荚。 (那些寿命很长的 pod 最终会占用大量内存。)
或者我们可以让它随机挑选?
选择最年轻的 pod 导致的另一个问题是,我们对具有特征的节点具有亲和力,它会将旧的 pod 留在其他节点上,并且总是缩小我们想要它们的节点上的那些。
【问题讨论】:
-
好吧,我想答案是“否”,确实如此。但是最后一个要点是,如果 2 个豆荚仅在年龄上有所不同,则会删除较年轻的豆荚。似乎它不应该有,或者应该反过来。移除较年轻的人会破坏优先亲和力,并与我认为的传统智慧背道而驰。
-
它当然不能解释优先级计算的那部分的合理性,这是我的问题的一部分。
-
无法配置删除哪些 pod。如 LauriKoskeka 链接所示,删除 pod 有一定的标准,但您可以强制执行您自己的规则。但是,如果您使用关联性,则应遵循规则在您想要的节点中运行 pod。这有什么问题?
-
问题是为什么它选择最年轻的。有什么不清楚的地方?亲和力的问题是,当它增加一个新的 pod 扩展时,它会将其放在我们的首选节点池中,但是当它缩小时,它会删除那个,所以如果我们还没有大部分都在首选池中,我们永远不会大部分时间都在首选池上。这对我来说似乎也很清楚。我猜你的里程可能会有所不同。