打標籤
kubectl label node node1 env-role=prod
檢視標籤
kubectl get nodes --show-labels
kubectl taint node node名 key=value:汙點三個可選值
noschedule : 一定不被排程
prefernoschedule : 盡量不被排程
noexecute : 不會排程,並且還會驅逐node已有pod
kubectl taint node node1 key1=value1:noschedulekubectl taint node node1 key1=value1:noexecute
kubectl taint node node1 key2=value2:noschedule
檢視taint:
kubectl describe node node1 | grep taints
刪除taint:
kubectl taint node node1 key1:noschedule- # 這裡的key可以不用指定valuekubectl taint node node1 key1:noexecute-
# kubectl taint node node1 key1- 刪除指定key所有的effect
kubectl taint node node1 key2:noschedule-
master節點設定taint
kubectl taint nodes master1 node-role.kubernetes.io/master=:noschedule
注意⚠️ : 為master設定的這個taint中,node-role.kubernetes.io/master
為key
,value
為空,effect
為noschedule
如果輸入命令時, 你丟掉了=
符號, 寫成了node-role.kubernetes.io/master:noschedule
, 會報error: at least one taint update is required
錯誤
以上面為 master1 設定的 taints 為例, 你需要為你的 yaml 檔案中新增如下配置, 才能容忍 master 節點的汙點
在 pod 的 spec 中設定 tolerations 字段
tolerations:- key: "node-role.kubernetes.io/master"
operator: "equal"
value: ""
effect: "noschedule"
k8s 節點打標籤
node標籤設定後,pod可以根據要求讓pod排程到想要的節點上執行,或者不在某節點執行。或者確保pod排程到具有高效能 比如ssd的機器 的節點山上。1.展示節點標籤 kubectl get node show labels true2.新增節點標籤 3.把pod排程到指定標籤 啟動乙個deplo...
K8S汙點機制
汙點kubectl taint 汙點 taint 的組成 使用 kubectl taint 命令可以給某個 node 節點設定汙點,node 被設定上汙點之後就和 pod 之間存在了一種相 斥的關係,可以讓 node 拒絕 pod 的排程執行,甚至將 node 已經存在的 pod 驅逐出去 每個汙點...
k8s 節點親和性和汙點容忍
1 檢視標籤 kubectl get nodes show labels 2 打標籤 kubectl label nodes node1.com kong true kubectl label nodes node2.com kong true kubectl label nodes node3.c...