配置負載容忍策略
更新時間 2025-01-21 08:49:03
最近更新時間: 2025-01-21 08:49:03
分享文章
本節介紹了 配置負載容忍策略的用戶指南。
調度器能夠借助容忍度(Toleration)機制,將Pod部署到帶有相應污點的節點之上。這一機制的實現依賴于容忍度與節點污點的協同作用。節點可配置一個或多個污點,對于缺乏對應容忍度的Pod,調度器會根據污點的具體效果進行篩選,以避免不恰當的節點分配。更多關于容忍度的應用實例,請參閱。
不同類型的污點效果
NoExecute
已在該節點運行的Pod會立即被移除。
未運行的Pod則不會被調度至此節點。
若未設定容忍時間(tolerationSeconds),Pod可持續在該節點運行。
若設定了容忍時間,Pod將在指定時間內繼續運行,超時后則被移除。
PreferNoSchedule
已運行的Pod不受影響,不會被移除。
未運行的Pod盡量避免調度至此節點。
Pod可長期在該節點上運行。
NoSchedule
已運行的Pod同樣不受影響。
未運行的Pod不會被調度至此節點。
Pod能持續在該節點上運行。
容忍策略配置參數詳解
| 參數名稱 | 參數說明 |
|---|---|
| 污點鍵 | 標識節點的污點鍵。 |
| 操作符 | Equal:精確匹配指定污點鍵(必填)及值的節點;Exists:匹配存在指定污點鍵的節點,此時無需指定污點值。 |
| 污點值 | 當操作符為Equal時,需填寫對應的污點值。 |
| 污點效果 | 全部:匹配所有污點效果;NoSchedule、PreferNoSchedule、NoExecute:分別匹配對應的污點效果。 |
| 容忍時間 | 即tolerationSeconds,僅NoExecute效果時支持配置,設定Pod在污點節點上的容忍時長,超時后被移除。 |
默認容忍策略解析
Kubernetes默認會為Pod添加針對node.kubernetes.io/not-ready和node.kubernetes.io/unreachable污點的容忍度,并設置容忍時間為300秒。這意味著,當Pod所在節點被標記為這兩種污點之一時,Pod仍可在5分鐘內保持運行狀態。
注意
在DaemonSet創建Pod時,針對上述污點自動添加的容忍度不會設定容忍時間,意味著在節點存在這些污點的情況下,DaemonSet中的Pod將始終不會被移除。
容忍度配置示例
進入創建負載的頁面,在高級配置中,選擇容忍策略,進行污點容忍配置。