如何在不删除并重新创建节点的情况下暂停 GKE 节点实例

如何在不删除并重新创建节点的情况下暂停 GKE 节点实例

我们有一个启用了自动缩放功能的 GKE 集群。我们使用 Google 调度程序每天在特定时间关闭实例。这也会关闭 GKE 节点。由于这些集群启用了自动缩放功能并具有最小节点数,因此即使通过脚本关闭节点,节点也会重新创建以匹配最小级别。因此,我们暂时将集群中的节点数设为 0,并在需要启动节点时手动将其更改回所需数量。当节点数设为 0 时,原始节点将从集群中删除,并在启动节点时创建新节点。有没有办法通过脚本关闭节点(如普通 GCP 实例),而不是删除并重新创建?AWS 自动缩放组中有一个功能,可以更改暂停设置。那么 GCP 中也有类似的东西吗?

答案1

当您使用时,GKE Cluster Autoscaler您将根据一些指标更改 CA 配置中指定的节点数。

集群自动扩缩器以每个节点池为基础工作。使用集群自动扩缩器配置节点池时,可以指定节点池的最小和最大大小。集群自动扩缩器会根据在该节点池的节点上运行的 Pod 的资源请求(而不是实际资源利用率)自动增加或减少节点池的大小。它会定期检查 Pod 和节点的状态,并采取行动

正如GKE 文档 - 减小集群规模

请勿在节点池上同时使用 Cluster Autoscaler 和手动调整大小命令,因为这可能会导致交互,从而导致节点池大小不稳定和/或不正确。

在这种情况下,当您手动将节点池更改为低于配置中指定的值时,Cluster autoscaler机制将按设计工作并将节点数更改为最少。

作为这种情况的解决方法,您可以考虑在手动调整节点池大小之前关闭Cluster Autoscaler。当您需要自动缩放节点时,您需要CA再次运行。

仅供参考,当您使用时,Cluster Autoscaling您还可以使用水平 Pod 自动扩缩器

相关内容