在Kubernetes中的HPA缩放过程中控制哪个复制集被放大

wwwo4jvm  于 12个月前  发布在  Kubernetes
关注(0)|答案(1)|浏览(148)

我有一个配置了HPA和滚动更新的部署。我的一个卷展向此部署推送了一个错误的更改,这触发了新的复制集的创建。这个新的复制集尝试扩展,但没有一个Pod准备就绪,因此旧的复制集仍然挂起,而我有旧复制集的就绪Pod。
到目前为止,一切都如预期。
但是,此部署收到了大量流量,需要从1个副本扩展到4个副本。旧的副本集(好)有1个副本,新的副本集(坏)有2个副本,但没有一个副本可以出现。因此,部署最终只有2个副本,并且失去了可用性。

**HPA规模如何选择为哪个复制集增加副本?**如果我们有一种方法来控制这一点,我们就可以防止服务错误。

rsl1atfo

rsl1atfo1#

根据官方文档,我认为你可以在HPA YAML文件上使用spec.selector,根据scaleTargetRef中的详细信息来定位特定的pod以进行自动缩放。你可以在下面查看示例YAML:

---
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: my-hpa
spec:
  scaleTargetRef:
    kind: Deployment
    name: my-deployment
  targetAverageUtilization: 80
  selector:
    matchLabels:
      app: my-app

字符串
需要注意的是,HPA是基于“demand”水平伸缩的,因此增加的工作负载意味着需要部署更多的Pod。
此外,HPA不会影响无法缩放的对象,如Daemonset。

相关问题