我已经为所有基于CPU的pod实现了HPA,并且它像预期的那样工作。但是当我们对工作节点进行维护时,HPA似乎搞砸了,因为它没有识别它。我是否需要在维护期间暂时禁用HPA,并在维护结束后重新启动它?
请建议
HPA Manifest -
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
有一个维护模式的解决方案,它说:
您可以隐式地停用目标的HPA,而无需这样做更改HPA配置本身。如果目标想要的副本count设置为0,并且HPA的最小副本计数大于0时,HPA停止调整目标(并设置
ScalingActive
状态为false
),直到你手动重新激活它调整目标所需的副本计数或HPA的最小副本计数。
编辑:
要更详细地解释上述内容,你应该这样做:
将部署扩展到
0
描述你的
HPA
请注意,在
Conditions:
部分下,ScalingActive
将变为False
,这将禁用HPA
,直到您将副本设置回所需值点击这里查看更多
此外,由于您没有指定究竟发生了什么以及期望的结果是什么,您可能还会考虑将工作负载移动到不同的节点。如何在群集上执行中断操作有几个选项供您选择。