如何解决命名空间 PodNodeSelector 对现有运行的 pods/statefulsets 没有影响
我在裸机上有 kubernetes 集群,我想对节点进行逻辑分离 DEV 环境将在功率较小的机器上,而生产环境将在最强大的机器上。我实现了准入控制器的 PodNodeselector。它在新创建的命名空间上运行良好,但在现有命名空间上,对其进行编辑和添加注释,Statefulset 上的所有现有 pod 都不会转到指定的强大机器上,只需继续运行即可。如何在不重新创建或删除 Pod/Statefulset 的情况下应用新注释并对 Statefulset 产生影响,无法承受 Elassandra 的停机时间
解决方法
你不能。这就是它目前的工作方式。一旦一个 Pod 被调度到一个节点上,它就会留在一个节点上。
同样适用于亲和性/反亲和性。
但在 k8s docs 中,您可以阅读:
未来我们计划提供 requiredDuringSchedulingRequiredDuringExecution 这将只是 像 requiredDuringSchedulingIgnoredDuringExecution 只是它 将从不再满足 Pod 节点的节点中驱逐 Pod 亲和力要求。
这就是您要寻找的,但尚未实施。 看起来删除 Pod 以强制然后重新安排是目前唯一可用的选项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。