我有一个带有 4 个节点的 kubernetes 集群。我有一个部署为部署的 pod,有 8 个副本。当我部署它时,kubernetes 有时会在 node1 中安排 4 个 pod,而在 node2 中安排其余的 4 个 pod。在这种情况下,node3 和 node4 没有运行这个容器(但其他容器在那里运行)
我确实了解 Pod 亲和性和反亲和性,他们有Zookeeper的 pod-anti-affinity 示例,这很棒。这将确保不会在同一节点上部署 2 个 pod。
这很好,但是我的要求略有不同,我想限制 k8s 可以部署到具有节点反关联性的一个节点的最大 pod 数量。
在上面的示例中,我需要确保在节点上部署的相同 Pod 实例不超过 3 个。我想在 pod 上设置内存/cpu 限制,但这似乎是个坏主意,因为我有不同配置的节点。有没有办法实现这一目标?
( 更新 1 ) - 我知道我的问题不够清楚。为了进一步澄清,我想要的是将特定部署的 pod 实例限制为每个节点最多 3 个。例如,我如何告诉 k8s 每个节点不部署超过 3 个 nginx pod 实例?该限制应仅适用于 nginx 部署,而不适用于其他部署。
(更新 2) - 进一步解释一个场景。一个 k8s 集群,有 4 个工作节点。2 部署
要求 - 嘿 kubernetes,我想在 4 个节点中安排 10 个“自定义用户代理”pod(本例中的 Pod #2),但我想确保每个节点最多只能有 3 个“自定义用户代理”。对于“nginx”pod,不应该有任何此类限制,这意味着我不介意 k8s 在一个节点中安排 5 个 nginx,而在第二个节点中安排 5 个的其余部分。
小智 1
该功能处于 alpha 阶段,我相信它被称为topologyKey,具体取决于您的 Kubernetes 版本,您也许可以使用它。 https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
| 归档时间: |
|
| 查看次数: |
3321 次 |
| 最近记录: |