在创建 GKE 集群时启用自动扩缩

Posted

技术标签:

【中文标题】在创建 GKE 集群时启用自动扩缩【英文标题】:Enable autoscaling on GKE cluster creation 【发布时间】:2017-01-20 03:08:40 【问题描述】:

我尝试在 GKE 上创建一个自动缩放的容器集群。 当我使用“--enable-autoscaling”选项时(如文档所示:https://cloud.google.com/container-engine/docs/clusters/operations#create_a_cluster_with_autoscaling):

$ gcloud container clusters create mycluster --zone $GOOGLE_ZONE --num-nodes=3 --enable-autoscaling --min-nodes=2 --max-nodes=5

但 MIG(托管实例组)未显示为“自动缩放”,如 Web 界面和以下命令的结果所示:

$ gcloud compute instance-groups managed list
NAME             SIZE   TARGET_SIZE   AUTOSCALED
gke-mycluster... 3      3             no

为什么?

然后,我尝试了 kubernetes 文档 (http://kubernetes.io/docs/admin/cluster-management/#cluster-autoscaling) 中指出的其他方式,但显然出现了由 '=true' 引起的错误:

$ gcloud container clusters create mytestcluster --zone=$GOOGLE_ZONE --enable-autoscaling=true --min-nodes=2 --max-nodes=5 --num-nodes=3
usage: gcloud container clusters update  NAME [optional flags]
ERROR: (gcloud.container.clusters.update) argument --enable-autoscaling: ignored explicit argument 'true'

这个文档错了吗? 这是我的 gcloud 版本结果:

$ gcloud version
Google Cloud SDK 120.0.0
beta 2016.01.12
bq 2.0.24
bq-nix 2.0.24
core 2016.07.29
core-nix 2016.03.28
gcloud 
gsutil 4.20
gsutil-nix 4.18
kubectl 
kubectl-linux-x86_64 1.3.3

最后精度:在集群的描述中,自动缩放器似乎“开启”:

$ gcloud container clusters describe  mycluster | grep auto -A 3
- autoscaling:
    enabled: true
    maxNodeCount: 5
    minNodeCount: 2

请解释一下这种行为?

【问题讨论】:

【参考方案1】:

Kubernetes 集群自动扩缩不使用托管实例组自动扩缩器。它在 Kubernetes 主服务器上运行 cluster-autoscaler 控制器,该控制器使用 Kubernetes 特定的信号来扩展您的节点。如果您想了解更多信息,The code 位于 autoscaler 存储库中。

我还发送了a PR 来修复自动缩放文档中的无效标志使用。感谢您接听!

【讨论】:

以上是关于在创建 GKE 集群时启用自动扩缩的主要内容,如果未能解决你的问题,请参考以下文章

旧光泽的 GKE 集群自动扩缩器配置文件

通过 GKE 资源预留进行 GCE 自动扩缩

如何使用 terraform 为自动创建的 GKE 集群和服务防火墙规则启用 Logconfig

GKE 自动缩放无法缩放

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

GKE 不会将节点缩减为零