三种调剂POD的方式:

  1. 污点、容忍度

  2. nodeName:让POD运行在制订的node上

  3. nodeSelecter:通过标签选择器,让POD运行在制订的一组node上

先建立一个简朴的deployment:

[root@hdss7-21 ~]# cat nginx-dp.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: nginx-dp
  name: nginx-dp
  namespace: kube-public
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx-dp
  template:
    metadata:
      labels:
        app: nginx-dp
    spec:
      containers:
      - image: harbor.od.com/public/nginx:v1.7.9
        imagePullPolicy: IfNotPresent
        name: nginx

没做污点的时刻,现在是两个节点上各运行一组POD:

[root@hdss7-21 ~]# kubectl taint node hdss7-22.host.com role=node:NoSchedule

若是给node7-22这个节点加污点,该节点将不会被调剂pod,由于NoSchedule的意思是不调剂

笔记4.6--账户操作命令

那么若是要给有污点的node节点调剂POD,可以使用容忍度设置,在template下添加设置:

  template:
    metadata:
      labels:
        app: nginx-dp
    tolertions:
      - key: role
        value: node
        effect: NoSchedule