注意点
同时指定 nodeSelector 和 nodeAffinity ,必须两个条件都满足
指定多个 nodeSelectorTerms 有一个匹配即可
一个 nodeSelectorTerms 中有多个 matchExpressions, 必须全部满足
node 标签变化,已经调度完成的 pod 不受影响
软亲和没有符合节点 pod 调度其他,硬亲和没有符合节点 pod 处于 Pending
pod.spec.affinity.nodeAffinity
软策略
pod.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
apiVersion: apps/v1kind: Deploymentmetadata:name: web-depspec:replicas: 5selector:matchLabels:app: web-deptemplate:metadata:labels:app: web-depspec:containers:- image: nginxname: web-dep-nginxaffinity:nodeAffinity:preferredDuringSchedulingIgnoredDuringExecution:- weight: 10preference:matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- node03- node04- weight: 90preference:matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- node01- node02
硬策略
pod.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
apiVersion: apps/v1kind: Deploymentmetadata:name: web-depspec:replicas: 5selector:matchLabels:app: web-deptemplate:metadata:labels:app: web-depspec:containers:- image: nginxname: web-dep-nginxaffinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- node01- node02- node03- node04
参数整理
键值运算关系
operator
In key 的 值 在 value 列表
NotIn key 的 值 不在 value 列表
Gt key 的 值 大于
Lt key 的 值 小于
Exists 只判断 key 存在,不写 value
DoesNotExist 只判断 key 不存在,不写 value
