【问题标题】:gcloud kubernetes node pool: high priority for preemptible VM nodes possiblegcloud kubernetes 节点池:可抢占 VM 节点的高优先级可能
【发布时间】:2025-12-08 07:20:03
【问题描述】:

我需要一个解决方案:

我在 gcloud kubernetes 中有 2 个节点池,第一个是抢占式和自动伸缩,第二个是仅自动伸缩。

作业应在第一个(使用抢占式虚拟机)上启动,但当第一个池中没有可用资源时,应在第二个池上启动作业。

我怎么能意识到这一点,也许是污点和容忍?

【问题讨论】:

  • 我也面临同样的问题。目前,Estafette GKE Node Pool Shifter 可能是临时解决方案吗? cloud.google.com/blog/products/containers-kubernetes/…
  • @tsu1980 Estafette GKE Node Pool Shifter 确实很有趣,但目前缺乏对区域集群的支持(至少在 GKE 上)。它仅支持区域集群,并且错误地请求了太多新节点。例如,对于 3 区域集群,将创建比预期多 3 倍的节点。这目前使其无法满足我们的需求。

标签: kubernetes nodes gcloud pool


【解决方案1】:

我认为您无法通过 Cluster Autoscaler 获得您想要的结果,但我希望为您提供一些选项和指导,以便您进一步探索。

  • Cluster Autoscaler 具有Expanders 的概念,它可以帮助确定在发生扩展事件时要扩展哪个节点组。 price 扩展器似乎接近你想要的,但基于它的description,它看起来还不支持抢占式虚拟机。您可以进一步探索,并可能通过submit a feature request 添加对抢占式节点池的支持。
  • 在选择抢占和非抢占节点的混合时,每当GCP上的库存和抢占节点时,不可用,那么非抢占节点也很可能是也不可用.在这种情况下,您可能会发现自己在集群中拥有少量不可抢占的节点,并且无法创建新节点。

    最好有一个固定的最小大小的不可抢占节点,并在此基础上使用 Cluster Autoscaler 自动扩展可抢占节点池。

【讨论】: