Horizo​​ntalPodAutoscaler 和 GKE Cluster Autoscaler 的区别

Difference between HorizontalPodAutoscaler and GKE Cluster Autoscaler

我可以通过 Cluster Autoscaler 自动配置节点以响应增加的负载,我可以创建一个集群:

gcloud container clusters create example-cluster \
  --num-nodes 1 \
  --zone us-central1-a \
  --node-locations us-central1-a,us-central1-b,us-central1-f \
  --enable-autoscaling --min-nodes 1 --max-nodes 4

Or via Horizontal Pod Autoscaling,我可以将其应用于现有集群:

kubectl autoscale deployment <deployment-name> --min=1 --max=4

Cluster Autoscaler 和 Horizo​​ntal Pod Autoscaling 之间有什么区别?它们似乎是实现同一目标的替代方法(让基础架构动态调整以响应更大的资源需求)。例如,两者都允许指定最小和最大节点数。然而,每一个的文档都没有提到另一个。

Horizo​​ntal Pod autoscaler:允许更新目标部署的副本数。基于您指定的指标(例如:CPU...)。这只会影响 pods 的数量(不影响节点的数量)。

Cluster autoscaler:如果 pods 由于缺少资源而无法调度(例如:CPU,则允许​​将新节点添加到节点池中记忆...)。这只会影响节点的数量(而不是 pods 的数量)。

(注意可以同时使用)