我的一个部署有一个激活了 Cluster Autoscaler 和 HPA 的集群。
这是 HPA 的定义:
kind: HorizontalPodAutoscaler
metadata:
name: hpa-resource-metrics-cpu
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: ReplicationController
name: hello-hpa-cpu
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 50
现在,在我的集群使用非常少的情况下,这意味着此部署将只有 1 个可用副本。
而且由于集群的使用率不高,可能是包含该副本的节点被安排删除(缩减)的情况。
在这种情况下,它会使我的部署停机(当集群节点被删除时,部署的唯一副本也会被删除,因此需要在新的 Pod 中重新调度)。我不希望这种情况发生(停机时间)。
从这个问题:https ://github.com/kubernetes/kubernetes/issues/48307看来,Pod Disruption Budgets 不适用于只有 1 个副本的部署。
所以解决我的问题的唯一方法是minReplicas
设置为 2?
或者我还能做些什么来防止这种停机时间,并且仍然让minReplicas
为 1?