调整Container Engine集群上的实例类型

Tim*_*imK 18 google-kubernetes-engine

我们的一些容器在当前部署在Container Engine集群中的实例类型之上的内存运行得更好.是否有建议的做法是在创建容器引擎集群后为较大的实例重建容器引擎模板?

例如,从GCE实例n1-standard-2转到n1-highmem-8,运行容量超过8GB的容器?

Ale*_*son 20

Container Engine当前没有用于执行此操作的API,但由于它为群集中的节点使用Compute Engine实例组,因此您无需更新GKE帮助即可实际更新它.在Developers Console中,复制看起来像"gke--" 的实例模板并修改其中的机器类型,然后编辑类似命名的实例组以使用新模板.您可以分别在Compute > Compute Engine > Instance templates和下找到这些选项Compute > Compute Engine > Instance groups.

  • 请注意,执行API升级会将节点回滚到先前的规范.由于内存不足,这导致我的应用程序交换 (5认同)

小智 14

一种不同的方法是:

(1)使用垂直缩放的机器类型为GKE集群创建一个新的节点池...

$ gcloud container node-pools create pool-n1std2 --zone europe-west1-d --cluster prod-cluster-1 --machine-type  n1-standard-2  --image-type gci --disk-size=250 --num-nodes 3
Run Code Online (Sandbox Code Playgroud)

(2)然后,将工作负载迁移出旧节点......

$ kubectl drain gke-prod-cluster-1-default-pool-f1eabad5-9ml5 --delete-local-data --force
Run Code Online (Sandbox Code Playgroud)

(3)最后,删除旧的节点池

$ gcloud container node-pools delete default-pool --cluster=prod-cluster-1
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 警告:步骤2删除节点本地卷,如emptyDir!!!
  • 需要对池中的每个节点重复步骤2
  • 可以配置适当的nodeSelector来将pod安排到新池上,而不是耗尽节点.要匹配的标签是cloud.google.com/gke-nodepool: pool-n1std2


mae*_*lga 3

有一个官方的 GKE 教程:

将工作负载迁移到不同的机器类型
教程演示了如何将 GKE 集群上运行的工作负载迁移到同一集群中的一组新节点,而不会给您的应用程序带来停机时间。如果您希望将工作负载迁移到具有不同机器类型的节点。

https://cloud.google.com/kubernetes-engine/docs/tutorials/migration-node-pool