Kubernets限制pods不在master node生成

Kubernets 限制 pods 不在 master node 生成

基於安全性考量情況下,在k8s中master node是不會部署pod在上面

公司k8s專案搭建了一套3個master node + 2個worker node的架構

目前k8s官方尚未正式提供多master node架構,所以即使自行設定多master node

k8s還是會將pod部署在第二和第三台master node上

要限制pod不在master node上部署,可以用kubectl taint指令來進行

# kubectl get nodes
NAME       STATUS         AGE
k8s-m01t   Ready,master   1d
k8s-m02t   Ready,master   1d
k8s-m03t   Ready,master   1d
k8s-n01t   Ready          1d
k8s-n02t   Ready          1d

這裡有3個master node,其中k8s-m02t和k8s-m03t都會被部署pod

所以執行下面指令

# kubectl taint node k8s-m02t dedicated=master:NoSchedule
# kubectl taint node k8s-m03t dedicated=master:NoSchedule


驗證一下設定

# kubectl describe nodes | grep Taints

Taints:                 dedicated=master:NoSchedule
Taints:                 dedicated=master:NoSchedule
Taints:                 dedicated=master:NoSchedule
Taints:                 <none>
Taints:                 <none>

看到dedicated=master:NoSchedule就代表設定成功了!!