使用命令 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:
Post a Comment