您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Kubernetes中的Taint和Toleration怎么用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Taint(污點)和 Toleration(容忍)可以作用于 node 和 pod 上,其目的是優化 pod 在集群間的調度,這跟節點親和性類似,只不過它們作用的方式相反,具有 taint 的 node 和 pod 是互斥關系,而具有節點親和性關系的 node 和 pod 是相吸的。另外還有可以給 node 節點設置 label,通過給 pod 設置 nodeSelector
將 pod 調度到具有匹配標簽的節點上。
Taint 和 toleration 相互配合,可以用來避免 pod 被分配到不合適的節點上。每個節點上都可以應用一個或多個 taint ,這表示對于那些不能容忍這些 taint 的 pod,是不會被該節點接受的。如果將 toleration 應用于 pod 上,則表示這些 pod 可以(但不要求)被調度到具有相應 taint 的節點上。
以下分別以為 node 設置 taint 和為 pod 設置 toleration 為例。
為 node1 設置 taint:
kubectl taint nodes node1 key1=value1:NoSchedule kubectl taint nodes node1 key1=value1:NoExecute kubectl taint nodes node1 key2=value2:NoSchedule
刪除上面的 taint:
kubectl taint nodes node1 key1:NoSchedule- kubectl taint nodes node1 key1:NoExecute- kubectl taint nodes node1 key2:NoSchedule-
查看 node1 上的 taint:
kubectl describe nodes node1
只要在 pod 的 spec 中設置 tolerations 字段即可,可以有多個 key
,如下所示:
tolerations: - key: "key1" operator: "Equal" value: "value1" effect: "NoSchedule" - key: "key1" operator: "Equal" value: "value1" effect: "NoExecute" - key: "node.alpha.kubernetes.io/unreachable" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000
value
的值可以為 NoSchedule
、PreferNoSchedule
或 NoExecute
。
tolerationSeconds
是當 pod 需要被驅逐時,可以繼續在 node 上運行的時間。
詳細使用方法請參考官方文檔。
kubectl taint node [node] key=value[effect] 其中[effect] 可取值: [ NoSchedule | PreferNoSchedule | NoExecute ] NoSchedule: 一定不能被調度 PreferNoSchedule: 盡量不要調度 NoExecute: 不僅不會調度, 還會驅逐Node上已有的Pod
上述就是小編為大家分享的Kubernetes中的Taint和Toleration怎么用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。