如何将 Pod 移动到新的节点池/实例组

red*_*888 5 google-cloud-platform kubernetes google-kubernetes-engine

我有一个 Gke 集群,连接了一个节点池

我想对节点池进行一些更改 - 比如添加标签等

所以我用我的新配置创建了一个新的节点池并连接到集群。所以现在集群有 2 个节点池。

此时我想将 pod 移动到新的节点池并销毁旧的

这个过程是如何完成的?我这样做对吗?

Rob*_*ley 7

有多种方法可以将您的 pod 移动到新的节点池。

一种方法是使用 pod 规范中的标签选择器将 pod 引导到新的节点池,如宣布节点池Google 博客文章中的“节点池更有趣”中所述(但需要注意的是,您需要强制终止现有的 pod 以便重新安排它们)。这使集群中的所有节点都可以正常工作,并且您可以使用节点池上的标签轻松地在池之间来回移动 pod(GKE 会自动添加节点池名称作为标签以使其更容易)。

另一种方法是遵循将工作负载迁移到不同机器类型的教程,该教程描述了如何封锁/排除节点以将工作负载转移到新的节点池。

最后,您可以使用 GKE 删除旧节点池。GKE 将在删除节点之前自动排空节点,这将导致您的工作负载转移到新池,而您无需自己运行任何额外的命令。

  • 是的,如果您附加一个新节点池并删除旧节点池,工作负载将迁移过去。但也有一些注意事项。即使旧节点将被耗尽,如果您想确保应用程序正常运行时间,您应该查看 Pod 中断预算,以确保耗尽率不会导致单个应用程序的所有副本同时关闭。如果您已将标签应用到 pod 选择器或将污点应用到节点,则工作负载可能会全部进入挂起状态,而不是被移走。但一般来说,它应该可以正常工作,没有太多麻烦。 (2认同)