在 Kubernetes 中,podAffinity和podAntiAffinity权重是相互比较的吗?还是独立?podAffinity和呢nodeAffinity?会podAntiAffinity超过podAffinity下面例子中的吗?如果nodeAffinity也添加到混合物中会怎样。
affinity:
podAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 50
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- test-1
topologyKey: kubernetes.io/hostname
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- test-2
topologyKey: kubernetes.io/hostname
Run Code Online (Sandbox Code Playgroud)
如果您不覆盖默认的单独权重 1,则 Pod 和节点的所有关联设置都会以相同的方式进行加权。
在执行期间,节点上出现的关联条件会乘以该条件的权重。
pod a has an affinity to b
pod a has an anti-affinity to c
new pod of type "a" to be scheduled
---
node1 runs 3 "b" pods and 1 "c" pod --> affinity score: 2 (3 "b" pods - 1 "c" pod)
node2 runs 1 "b" pod --> affinity score 1: 1 (1 "b" pod)
Run Code Online (Sandbox Code Playgroud)
根据亲和力计算,尽管 pod“c” 已经在运行 pod“c”,但 pod 将被调度到节点 1 上,因为 3 个“b”pod 超过 1 个“c”pod。
在您的示例中,如果节点上的test-1与 的比例为 1:1,则反亲和力将超过亲和力设置。当节点上test-2的比例为 2:1 时,(反)亲和力将相互抵消。test-1test-2
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |