一.簡單說明
這里我們部署的Kubernetes集群,master節點默認是unscheduled的狀態,也就是默認拒絕將Pod調度到master節點運行。專業術語就是:Master節點被賦予了一個或者多個"污點","污點"的作用是讓該節點拒絕將Pod調度運行在其上。這種情況下,我們如果想讓master節點可以調度pod運行如何實現,這里有兩種方案:
- 去掉污點(taints)
- 讓pod能夠容器(tolerations)該節點上的污點。
1.1 方案一:去掉污點
- 查看節點調度情況
[root@k8s001 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
172.16.33.22 Ready master 3d v1.13.5
172.16.33.23 Ready node 3d v1.13.5
172.16.33.24 Ready node 3d v1.13.5
[root@k8s001 ~]# kubectl describe node 172.16.33.22
......
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal NodeNotSchedulable 11s (x2 over 3d) kubelet, 172.16.33.22 Node 172.16.33.22 status is now: NodeNotSchedulable
......
- 去除污點
[root@k8s001 ~]# kubectl uncordon 172.16.33.22
1.2 方案二:增加污點容忍
[root@k8s001 ~]# cat pod.yaml
......
spec:
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
containers:
- name: nginx-pod
......