51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

k8s Pod调度之节点亲和性nodeAffinity

k8s Pod调度之节点亲和性nodeAffinity

1.给节点打标签

kubectl label nodes master231 school=baimei

kubectl label nodes worker232 school=laonanhai

kubectl label nodes worker233 school=yitiantain

kubectl get nodes --show-labels

2.编写资源清单

cat 02-nodeAffinity.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploy-tolerations-nodeaffinity-demo02
spec:
  replicas: 10
  selector:
    matchExpressions:
    - key: apps
      values: 
      - "v1"
      - "v2"
      operator: NotIn
  template:
    metadata:
      labels:
        school: baimei
    spec:
      # 基于节点的标签进行调度,将Pod调度到包含key为type,value为ssd的节点上。
      # nodeSelector:
      #   type: ssd
      #
      # 配置亲和性
      affinity:
        # 配置节点亲和性
        nodeAffinity:
           # 硬限制
           requiredDuringSchedulingIgnoredDuringExecution:
             # 指定节点选择器的匹配方式
             nodeSelectorTerms:
               # 指定基于标签的方式匹配
             - matchExpressions:
                 # 指定key的名称
               - key: school
                 # 指定value的列表,注意以下事项:
                 #    1.当operator为Exists或者DoesNotExist时,该列表必须为空。
                 #    2.当operator为In或者NotIn时,该列表必须为非空。
                 #    3..当operator为Gt或者Lt时,该列表必须为一个整数。
                 values: 
                 - baimei
                 - laonanhai
                 # 指定key的value的关系,有效值为如下:
                 #    In:
                 #      key的值在values的列表中。
                 #    NotIn:
                 #      key的值不在values的列表中。
                 #    Exists:
                 #      只要key存在即可,value值任意,可以不写。
                 #    DoesNotExist:
                 #      除了指定的key外,其他key均可以匹配。
                 #    Gt:
                 #      表示大于的意思。
                 #    Lt:
                 #      表示小于的意思。
                 operator: In
                 #operator: Exists
      # 配置污点容忍
      tolerations:
      - key: school
        operator: Exists
      - key: class
        effect: NoSchedule
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
      containers:
      - name: v1
        image: harbor.baimei.com/baimei-apps/apps:v1

kubectl apply -f 01-podAffinity.yaml

赞(7)
未经允许不得转载:工具盒子 » k8s Pod调度之节点亲和性nodeAffinity