我有一个配置了HPA和滚动更新的部署。我的一个卷展向此部署推送了一个错误的更改,这触发了新的复制集的创建。这个新的复制集尝试扩展,但没有一个Pod准备就绪,因此旧的复制集仍然挂起,而我有旧复制集的就绪Pod。
到目前为止,一切都如预期。
但是,此部署收到了大量流量,需要从1个副本扩展到4个副本。旧的副本集(好)有1个副本,新的副本集(坏)有2个副本,但没有一个副本可以出现。因此,部署最终只有2个副本,并且失去了可用性。
**HPA规模如何选择为哪个复制集增加副本?**如果我们有一种方法来控制这一点,我们就可以防止服务错误。
1条答案
按热度按时间rsl1atfo1#
根据官方文档,我认为你可以在HPA YAML文件上使用
spec.selector
,根据scaleTargetRef
中的详细信息来定位特定的pod以进行自动缩放。你可以在下面查看示例YAML:字符串
需要注意的是,HPA是基于“demand”水平伸缩的,因此增加的工作负载意味着需要部署更多的Pod。
此外,HPA不会影响无法缩放的对象,如Daemonset。