【问题标题】:Vertical Autoscaling on Google Kubernetes Engine?Google Kubernetes Engine 上的垂直自动扩缩?
【发布时间】:2021-01-20 09:40:48
【问题描述】:
GKE 是否支持垂直节点自动缩放?
例如:
我有一个 GKE cluster,只有一个 node-pool 和两个节点池的节点,以防任何 pod 需要更多内存或 CPU,我不希望任何其他节点/计算实例创建后,有没有办法改变现有节点的配置并添加额外的内存/CPU?
基本上,现有实例/节点会升级为具有更高配置的实例。
【问题讨论】:
标签:
kubernetes
google-cloud-platform
google-kubernetes-engine
autoscaling
【解决方案1】:
恐怕谷歌云没有提供你想要的功能。
无法在当前node pool VMs 中添加 CPU/RAM,因为Google Kubernetes Engine 中使用的节点是基于Google Compute Engine 虚拟机和资源在创建之前指定的。如果您想更改node pool 中的 CPU/RAM 资源,您需要按照@Emre Odabaş 的指示手动进行。但是,必须以更高的资源可用性重新创建所有节点。
为了满足您的需求,您可以选择要使用的Machine Type,但是您可以创建Custom Machine Type。
作为解决方法,您可以考虑使用 2 个node pools:
一个带有常规 node-pool-1 和 e2-medium(2 个 vCPU,4GB 内存)
$ gcloud container node-pools create node-pool-1 --machine-type=e2-medium --cluster=cluster-1 --zone=europe-north1-b ---num-nodes=2
和node-pool-2 和e2-standard-4(4 个 vCPU,16 GB 内存)。
$ gcloud container node-pools create node-pool-2 --machine-type=e2-standard-4 --cluster=cluster-1 --zone=europe-north1-b --num-nodes=0
但是,这只有在您知道自己没有足够的资源并手动更改时才有效:
- 常规加载:来自
node-pool-1的2个节点
- 更高的负载:来自
node-pool-1 的1 个节点和来自node-pool-2 的1 个节点
- 满载:2个节点形成
node-pool-2
【解决方案2】:
您可以手动更改具有不同节点类型的节点池。 AFAIK GKE 中没有垂直节点自动缩放器。