gpt4 book ai didi

Kubernetes AntiAffinity - 限制每个节点的相同 Pod 的最大数量

转载 作者:行者123 更新时间:2023-12-02 11:32:10 25 4
gpt4 key购买 nike

我有一个带有 4 个节点的 kubernetes 集群。我有一个部署为部署的 pod,有 8 个副本。当我部署它时,kubernetes 有时会在 node1 中安排 4 个 pod,而在 node2 中安排其余的 4 个 pod。在这种情况下,node3 和 node4 没有运行这个容器(但其他容器在那里运行)

我确实了解 Pod 亲和力和 anti-affinity , 他们有 Zookeeper pod-anti-affinity 的例子,这很好。这将确保不会在同一节点上部署 2 个 pod。

这很好,但是我的要求略有不同,我想限制 k8s 可以部署到具有节点反关联性的一个节点的最大 pod 数量。

在上面的示例中,我需要确保在节点上部署的相同 Pod 实例不超过 3 个。我想在 pod 上设置内存/cpu 限制,但这似乎是个坏主意,因为我有不同配置的节点。有没有办法实现这一目标?

( 更新 1 ) - 我知道我的问题不够清楚。为了进一步澄清,我想要的是将特定部署的 pod 实例限制为每个节点最多 3 个。例如,我如何告诉 k8s 每个节点不部署超过 3 个 nginx pod 实例?该限制应仅适用于 nginx 部署,而不适用于其他部署。

(更新 2) - 进一步解释一个场景。
一个 k8s 集群,有 4 个工作节点。
2 部署

  • 一个 nginx 部署 -> 副本 = 10
  • 自定义用户代理部署 -> 副本 10

  • 要求 - 嘿 kubernetes,我想在 4 个节点中安排 10 个“自定义用户代理”pod(本例中的 Pod #2),但我想确保每个节点最多只能有 3 个“自定义用户代理”。对于“nginx”pod,不应该有任何此类限制,这意味着我不介意 k8s 在一个节点中安排 5 个 nginx,而在第二个节点中安排 5 个的其余部分。

    最佳答案

    因此可以通过topologykey来实现为每个节点设置一个最小的pod数量

    是的,您可以通过使用 topologykey 的 pod 亲缘关系通过部署对象在每个节点上生成一个 pod。设为 “kubernetes.io/主机名” .

    使用上面的示例,您将具有以下行为:

    topology key

    我希望这就是你要找的:
    enter image description here

    关于Kubernetes AntiAffinity - 限制每个节点的相同 Pod 的最大数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61965256/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com