权重
在Affinity规则中,每个匹配条件都可以设置权重。权重的值范围是1到100,其中100表示最高优先级。
例如,以下是一个使用Pod Affinity规则的示例,它要求Pod只能调度到与它具有相同标签的Pod所在的Node上,如果没有相同标签的Pod,则调度到其他Node上:
代码语言:javascript复制apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- nginx
topologyKey: kubernetes.io/hostname
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- nginx
topologyKey: kubernetes.io/hostname
weight: 100
在这个示例中,Pod使用了Pod Affinity规则,它的规则包括requiredDuringSchedulingIgnoredDuringExecution
和preferredDuringSchedulingIgnoredDuringExecution
两个部分。requiredDuringSchedulingIgnoredDuringExecution
部分要求Pod必须调度到与它具有相同标签的Pod所在的Node上,否则调度失败。而preferredDuringSchedulingIgnoredDuringExecution
部分则要求Pod尽可能调度到与它具有相同标签的Pod所在的Node上,如果没有相同标签的Pod,则调度到其他Node上。在这个规则中,weight
被设置为100,表示这个规则的优先级最高。