GKE 集群自动扩缩器与托管实例组中的自动扩缩器

Posted

技术标签:

【中文标题】GKE 集群自动扩缩器与托管实例组中的自动扩缩器【英文标题】:GKE cluster autoscaler vs Autoscaling in Managed instance groups 【发布时间】:2017-09-20 14:32:51 【问题描述】:

我正在使用 Google 容器引擎。现在我想在我的集群中使用自动缩放功能。根据文档 GKE autoscaler 处于 beta 版 中。我还可以在管理集群节点的 instance group 中启用自动缩放。 集群自动缩放器添加/删除节点,以便所有计划的 pod 都有一个运行的地方,实例组根据不同的策略(如平均 cpu 利用率)添加/删除节点。 我认为通过调整 Kubernetes 自动扩缩器中 pod 的 pod CPU 限制和目标 CPU 利用率,托管实例组自动扩缩也可以用于调整 GKE 集群的大小。 所以我的问题是我应该使用什么?

【问题讨论】:

【参考方案1】:

根据 GCP 文档:

“警告:不要为集群节点的托管实例组启用 Compute Engine 自动扩缩。GKE 的集群自动扩缩器与 Compute Engine 自动扩缩器是分开的。这可能会导致节点池无法像 Compute Engine 自动扩缩器那样扩展或缩减与 GKE 的集群自动扩缩器冲突”

更多详情:

https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-autoscaler

【讨论】:

【参考方案2】:

简短回答 - 不要使用 GCE MIG 自动缩放功能。它无法在您的集群上正常工作。

查看此常见问题解答中的详细信息: https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#should-i-use-a-cpu-usage-based-node-autoscaler-with-kubernetes

(阅读上面链接的问题和接下来的 2 个问题)

【讨论】:

以上是关于GKE 集群自动扩缩器与托管实例组中的自动扩缩器的主要内容,如果未能解决你的问题,请参考以下文章

GKE 自动扩缩器“优化利用率”

在 Google Cloud 上的何处配置 Kubernetes 集群自动扩缩器?

如何为 kops 在 AWS 上安装的 k8s 做集群自动扩缩器?

如何防止 Kubernetes 水平自动扩缩器缩容?

如何使用 Terraform 配置 AWS EKS 自动扩缩器?

具有自动缩放和负载均衡器的永久实例