在 Kubernetes Deployment 裡面設定 Pod 的 Node Affinity
mkfsn 7/25/2020  kubernetes
看官網寫的有夠複雜的:在 spec 底下的 affinity 裡面的 nodeAffinity,可以給設定兩個選項:
- requiredDuringSchedulingIgnoredDuringExecution
 - preferedDuringSchedulingIgnoredDuringExecution
 
先別暈過去 ... 這還沒完。
這兩個名字非常長的選項底下你可以設定: nodeSelectorTerms 然後是一個 list/array。
nodeSelectorTerms 其中的每一個 item 的內容可以設定 matchExpressions ,而他也是一個 list/array。
這個 matchExpressions 裡面每一個 item 的內容則是 key, operator 以及 values。
這邊的 key 終於是我們設定 node 的 label key 了(撒花), 而 operator 則可以設定 In, NotIn 跟 Exists。
看到 operator 接受 In 跟 NotIn 大概可以猜得到 values 也是一個 list/array。
講了半天越看越不懂,直接看內容的話,他就是長這個樣子:
apiVersion: apps/v1
kind: Deployment
metadata:
  ...
spec:
  template:
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: kubernetes.io/hostname
                operator: In
                values:
                - ucpworker-0
好,現在可以暈倒了。(倒