1

我已经为所有基于 CPU 的 pod 实现了 HPA,它按预期工作。但是当我们对工作节点进行维护时,HPA 似乎搞砸了,因为它无法识别它。我是否需要在维护期间暂时禁用 HPA,并在维护结束后将其启动。

请建议

HPA 清单 -

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: pod-name-cpu
spec:
  maxReplicas: 6
  minReplicas: 2
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: pod-name
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 60
4

1 回答 1

0

有一个维护模式解决方案,它说:

您可以隐式停用目标的 HPA,而无需更改 HPA 配置本身。如果目标的所需副本数设置为 0,并且 HPA 的最小副本数大于 0,则 HPA 将停止调整目标(并将ScalingActive 自身的 Condition 设置为false),直到您通过手动调整目标的所需副本数重新激活它或HPA 的最小副本数。

编辑:

为了进一步解释上述内容,您应该做的事情是:

  • 将您的部署扩展到0

  • 描述你的HPA

  • 请注意,在您将副本设置回所需值之前,该Conditions:部分ScalingActive将转向False将禁用的部分HPA

  • 在这里查看更多

此外,由于您没有具体说明究竟发生了什么以及期望的结果是什么,您还可以考虑将工作负载转移到不同的节点。 如何在集群上执行破坏性操作有几个选项供您选择。

于 2021-03-10T12:53:52.320 回答