Kubernetes 集群中设置主节点是否参与 Pod 调度

2020-06-08 0 By admin

在 Kubernetes 容器编排工具初始化时,一般从安全的角度考虑,Master 节点不参与 Pod 的调度;也就是不会在 Master 节点运行 Pod。
这个规则是通过对 Node 节点设置 taint 污点实现的。参考文档:

Kubernetes 集群中设置污点 Taints 和容忍 Tolerations 介绍

一、查看集群中 Master 节点 taint 设置

kubectl get node k8s-master-node -o yaml

......
spec:
  podCIDR: 10.64.3.0/24
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/master
    value: "true"
......

如果不知道那台机器是 master 节点,也可以通过命令kubectl get no -o yaml | grep taint -A 5 查看集群配置的master节点的污点信息。

二、取消 master 节点保护的 taint 设置

kubectl taint nodes --all node-role.kubernetes.io/master-

取消上面所说的 Master 节点保护机制,这样 Master 节点也会参与 Pod 的调度,承担 Pod 的负载。

三、设置 master 节点保护 taint

kubectl taint nodes k8s-master-node node-role.kubernetes.io/master=true:NoSchedule

如果要将 Master 节点(某个节点)保护起来,默认不参与 Pod 的调度,使用上面的命令就可以实现了。