Kubernetes podAffinity NotIn 与 podAntiAffinity In 操作员行为

问题描述 投票:0回答:1

是否在 Kubernetes 中的

podAffinity
上设置以下
Deployment

podAffinity:
  requiredDuringSchedulingIgnoredDuringExecution:
  - labelSelector:
      matchExpressions:
      - key: app
        operator: NotIn
        values:
        - myapp
    topologyKey: "kubernetes.io/hostname"

与设置以下效果相同

antiAffinity

podAntiAffinity:
  requiredDuringSchedulingIgnoredDuringExecution:
  - labelSelector:
      matchExpressions:
      - key: app
        operator: In
        values:
        - myapp
    topologyKey: "kubernetes.io/hostname"
kubernetes
1个回答
0
投票

第一个语句断言,只有当该节点上调度了标签为 app 与 myapp 不同的 pod 时,您才能在该节点上调度 pod;第二条语句断言,如果某个节点上有某个 pod,则无法在该节点上调度 pod在同一节点上,标签 app 等于 myapp,因此它们是不同的。如果节点上没有标签为app的pod,则第一个语句不允许调度,第二个语句允许调度。 请注意,如果没有 pod 与亲和性策略相匹配,kubernetes 会检查 pod 本身是否匹配,如果匹配,则调度 pod,因此亲和性规则可能会在不同情况下改变行为。此外,在语句中没有命名空间选择,因此规则仅适用于出现亲和性/反亲和性定义的 pod 的命名空间。

© www.soinside.com 2019 - 2024. All rights reserved.