Tuesday, February 1, 2022

[Kubernetes] 如何把 Master Node 改成有 Worker的屬性 (可分配Pods)

使用命令 kubectl taint 可以給節點(Node)增加一個污點。

比如:

kubectl taint nodes node1 key1=value1:NoSchedule

說明: 

給節點 node1 增加一個污點,它的鍵名是 key1,鍵值是 value1,效果是 NoSchedule。這表示只有擁有和這個污點相匹配的容忍度的 Pod 才能夠被分配到 node1 這個節點。

若要移除上述命令所添加的污點,你可以執行:

kubectl taint nodes node1 key1=value1:NoSchedule-

最常用的例子就是把 Master Node 改成有 Worker的屬性

kubectl taint nodes k8s1 node-role.kubernetes.io/master:NoSchedule-


[更新]

在K8S v1.24之後默認kubeadm取消taint,之前版本使用node-role.kubernetes.io/master標籤,在Kubernetes 1.24版本中,label標籤已經修改為node-role.kubernetes.io/control-plane

查看node節點所有標籤

kubectl get nodes --show-labels

我們可以直接查看master節點污點情況

kubectl describe node <node_name> | grep Taints

生成污點

kubectl taint nodes <node_name> node-role.kubernetes.io/control-plane:NoSchedule

取消污點

kubectl taint nodes <node_name> node-role.kubernetes.io/control-plane:NoSchedule-


Reference: 

kubectl 備忘單

https://kubernetes.io/zh/docs/reference/kubectl/cheatsheet/


No comments: