1

我在裸机上有 kubernetes 集群,我希望在逻辑上分离节点,其中 DEV 环境将在功率较小的机器上,而生产环境将在最强大的机器上。我实现了准入控制器的 PodNodeSelector。它在新创建的命名空间上运行良好,但在现有命名空间上,编辑和添加注释到 Statefulset 上的所有现有 pod 都不会进入指定的强大机器,只是继续运行。如何在不重新创建或删除 pod/Statefulsets 的情况下应用新注释并对 Statefulset 产生影响,无法承受 Elassandra 的停机时间

4

1 回答 1

1

你不能。这就是它目前的工作方式。一旦一个 pod 被调度到一个节点上,它就会停留在一个节点上。

同样适用于亲和力/反亲和力。

但在k8s 文档中,您可以阅读:

未来我们计划提供 requiredDuringSchedulingRequiredDuringExecution,它就像 requiredDuringSchedulingIgnoredDuringExecution 一样,只是它将从不再满足 Pod 的节点亲和性要求的节点中驱逐 Pod。

这就是您要寻找的,但尚未实施。看起来删除 pod 以强制然后重新安排是目前唯一可用的选项。

于 2021-03-10T13:14:29.673 回答