NodeAffinity意为Node亲和性调度策略。是用于替换NodeSelector的全新调度策略。目前有两种节点节点亲和性表达:
- RequiredDuringSchedulingIgnoredDuringExecution:
必须满足制定的规则才可以调度pode到Node上。相当于硬限制 - PreferredDuringSchedulingIgnoreDuringExecution:
强调优先满足制定规则,调度器会尝试调度pod到Node上,但并不强求,相当于软限制。多个优先级规则还可以设置权重值,以定义执行的先后顺序。
IgnoredDuringExecution的意思是:
如果一个pod所在的节点在pod运行期间标签发生了变更,不在符合该pod的节点亲和性需求,则系统将忽略Node上Lable的变化,该pod能机选在该节点运行。
下面的例子设置了NodeAffinity调度的如下规则:
- RequiredDuringSchedulingIgnoredDuringExecution 要求只运行在amd64的节点上()
- PreferredDuringSchedulingIgnoreDuringExecution 要求尽量运行在磁盘类型为ssd()的节点上
代码如下:
[root@bogon ~]# vim with-node-affinity.yaml
apiVersion