GKE 不会将节点缩减为零

Posted

技术标签:

【中文标题】GKE 不会将节点缩减为零【英文标题】:GKE doesn't downscale node to zero 【发布时间】:2020-07-10 20:35:24 【问题描述】:

GKE 集群配置了集群/节点自动配置。

我创建了一个默认节点池,可以在其上运行系统特定的 pod。每当请求带有 GPU 的 Pod 时,GKE 会自动创建新的启用 GPU 的节点池,这很好。

但是,每当我删除此类 pod 时,GKE 不会将新创建的节点池缩减为零实例。相反,一个实例继续运行。如果没有请求 GPU,节点池应该达到最小大小,即零。

注意:

对于 GPU 驱动程序,已在“kube-system”命名空间下创建了一个 Daemonset,此 Daemonsets 的 Pod 在每个启用 GPU 的节点上运行。

我编辑了这个 Daemonset 并添加了标签 '"cluster-autoscaler.kubernetes.io/safe-to-evict": "true" ' 到 pod。

有人可以帮助如何将新创建的节点池缩减到零节点吗?

更新:

在新节点上运行的 Pod 是:

fluentd-gcp(来自 DaemonSet)

kube 代理

nvidia-gpu-device-plugin(来自 DaemonSet)

这些豆荚不应该被驱逐吗?

【问题讨论】:

剩余节点上正在运行什么?查看此问题并回答:***.com/questions/59217515/… @JohnHanley 请检查更新。我浏览了提供的链接,但是运行中的 pod 应该会自动从该节点中被逐出,对吗?如果不是,驱逐他们的好做法是什么? 【参考方案1】:

GKE 默认保留一个额外的节点资源用于快速调度 pod。这是由 Auto Scaling 策略控制的默认行为。

可以通过将策略设置为“优化利用”来更改此行为。

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

【讨论】:

以上是关于GKE 不会将节点缩减为零的主要内容,如果未能解决你的问题,请参考以下文章

GKE 上的 HPA 将部署扩展到 0

树缩减算法

AWS EKS Cluster Autoscaler - 缩减策略

这个图形缩减操作是不是已经存在?

AWS Dynamo 不会自动缩减

将 Redis 集群缩减为单个 GCP 内存存储