StatefulSet 中每个 Pod 的动态、单独节点亲和性

StatefulSet 中每个 Pod 的动态、单独节点亲和性

我有两个节点池:NP1NP2。我有一个StatefulSet带有 pod,它们使用序数索引从外部配置源检索自己的配置。

在某些情况下,我需要将各个 Pod 重新安排为 或NP1NP2关于哪个 Pod 应在哪个节点池上运行的实际信息存储在 Consul KV 对象中。

我可以编写一个 Kubernetes Operator,它订阅该对象并进行修改,StatefulSet以便在更新 Consul KV 对象时将各个 Pod 重新安排到正确的节点池。我的问题是如何nodeAffinity为每个 Pod 定义不同的内容?

我已经看到了一些使用topologyKeywith的示例podAntiAffinity,但在我的例子中,应该在哪个节点池上调度 pod 的决定是基于完全来自 kubernetes 集群外部的数据。

答案1

据我所知,你可以使用变异 webhook作为丹尼尔评论中提到:

我很确定只有 Mutating Webhook 才能允许您做这样的动态技巧;我认为 OPA 对该用例做出了一些让步。

您还可以在这里找到有关动态准入控制

相关内容