我们的一些容器在当前部署在Container Engine集群中的实例类型之上的内存运行得更好。是否有建议的做法是在创建容器引擎集群后为较大的实例重建容器引擎模板?
例如,从GCE实例n1-standard-2转到n1-highmem-8,运行容量超过8GB的容器?
答案 0 :(得分:20)
Container Engine目前没有用于执行此操作的API,但由于它为群集中的节点使用Compute Engine instance group,因此您无需更新GKE即可实际更新它。在开发人员控制台中,复制看起来像“gke--”的instance template并修改其中的计算机类型,然后编辑类似命名的实例组以使用新模板。您可以分别在Compute > Compute Engine > Instance templates
和Compute > Compute Engine > Instance groups
下找到这些选项。
答案 1 :(得分:13)
另一种方法是:
(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
(2)然后,将工作负载迁移出旧节点......
$ kubectl drain gke-prod-cluster-1-default-pool-f1eabad5-9ml5 --delete-local-data --force
(3)最后,删除旧的节点池
$ gcloud container node-pools delete default-pool --cluster=prod-cluster-1
注意:
emptyDir
!!! nodeSelector
来将pod安排到新池上,而不是耗尽节点。要匹配的标签为cloud.google.com/gke-nodepool: pool-n1std2
答案 2 :(得分:4)
答案 3 :(得分:2)
要从GCE实例n1-standard-2转到n1-highmem-8,以运行具有8GB以上RAM的容器?
Kubernetes 1.12(2018年9月)应提供一种官方方式来管理您现有的资源,并使用kubernetes issue 21“垂直缩放容器”(或“ VPA ”:垂直容器自动缩放器”)。
Pods的垂直缩放现在处于beta中,这使得可以在Pod的生命周期内更改其资源限制。尤其对于宠物(例如,破坏和重建成本很高的豆荚)而言,这很有价值。
此代码降落在1.12左右,但这是一个独立插件的发布。它未包含在1.12 Kubernetes发行版中。
在此周期的开始,Sig建筑决定将VPA API保留为CRD,因此不将其绑定到任何特定的K8S版本。
查看更多信息:
BanzaiCloud的最后一篇文章过时了(某些链接不再有效),但仍说明了如何管理pod资源。
答案 4 :(得分:1)
有一个官方的GKE教程:
将工作负载迁移到不同的计算机类型
” 本教程演示了如何将GKE集群上运行的工作负载迁移到同一集群中的一组新节点上,而不会导致停机您的应用程序。如果要将工作负载迁移到其他计算机类型的节点上,则这种迁移非常有用。“
https://cloud.google.com/kubernetes-engine/docs/tutorials/migrating-node-pool