k8s拓扑域 :topologyKey

时间:2024-11-14 07:42:34

主要用于定义Pod亲和性或反亲和性规则中的拓扑域,从而控制Pod在集群中的调度。

参数描述:仅支持在工作负载亲和/工作负载反亲和调度策略中使用。先圈定拓扑域(topologyKey)指定的范围,然后再选择策略定义的内容。

topologyKey字段(用于划分拓扑域),意思是先圈定topologyKey指定的范围,当节点上的标签键、值均相同时会被认为同一拓扑域,然后再选择下面规则定义的内容。

它和labelSelector之间是与的关系,即topologyKey表达的条件要满足,labelSelector表达的条件也要满足。topologyKey的写法非常简单,只要传入Node标签的一个Key的名称。

示例:pod会被调度到node节点标签带有prefer,且具有pod带app=backend标签的node上。

affinity:
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - topologyKey: prefer
            labelSelector:
              matchExpressions: 
              - key: app
                operator: In 
                values: 
                - backend
​