微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

命名空间 PodNodeSelector 对现有运行的 pods/statefulsets 没有影响

如何解决命名空间 PodNodeSelector 对现有运行的 pods/statefulsets 没有影响

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

解决方法

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

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

但在 k8s docs 中,您可以阅读:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。