節點排水
更新時間 2024-01-05 16:04:19
最近更新時間: 2024-01-05 16:04:19
分享文章
本章節主要介紹節點排水。
操作場景
您可以通過控制臺使用節點排水功能,系統會將節點設置為不可調度,然后安全地將節點上所有符合節點排水規則的Pod驅逐,后續新建的Pod都不會再調度到該節點。
在節點故障等場景下,該功能可幫助您快速隔離故障節點,被驅逐的Pod將會由工作負載controller轉移到其他正常可調度的節點上。
約束與限制
僅以下指定版本的集群支持節點排水功能:
- v1.21集群:v1.21.10-r0及以上版本
- v1.23集群:v1.23.8-r0及以上版本
- v1.25集群:v1.25.3-r0及以上版本
- v1.25以上版本集群
IAM用戶在使用節點排水功能時,至少需要具有以下一項權限,詳情請參見命名空間權限(Kubernetes RBAC授權)。
- cluster-admin(管理員權限):對全部命名空間下所有資源的讀寫權限。
- drainage-editor:節點排水操作權限,可執行節點排水。
- drainage-viewer:節點排水只讀權限,僅可查看節點排水狀態,無法執行節點排水。
節點排水規格
節點排水功能會安全驅逐節點上的Pod,但對于滿足以下過濾規則的Pod,系統會進行例外處理:
表 節點排水規則
| Pod篩選條件 | 使用強制排水 | 不使用強制排水 |
|---|---|---|
| Pod的status.phase字段為Succeeded或Failed | 刪除 | 刪除 |
| Pod不受工作負載controller管理 | 刪除 | 放棄排水 |
| Pod由DaemonSet管理 | 忽略 | 放棄排水 |
| Pod中掛載了emptyDir類型的volume | 驅逐 | 放棄排水 |
| 由kubelet直接管理的靜態Pod | 忽略 | 忽略 |
說明節點排水過程中可能會對Pod執行的操作如下:
刪除:Pod會從當前節點上刪除,不會再重新調度至其他節點。
驅逐:Pod會從當前節點上刪除,且會重新調度至其他節點。
忽略:Pod不會被驅逐或刪除。
放棄排水:若節點上存在放棄排水的Pod,節點排水過程會中止,不會驅逐或刪除任何Pod。
操作步驟
步驟 1 登錄CCE控制臺,單擊集群名稱進入集群。
步驟 2 在左側導航欄選擇“節點管理”,在右側單擊節點后的“更多 > 節點排水”。
步驟 3 在彈出的“節點排水”窗口中,進行排水設置。
- 超時時間(秒):超過設定的時間后排水任務會自動失敗,0表示不設置超時時間。
- 強制排水:使用強制排水時,將忽略DaemonSet管理的Pod,但會刪除掛載了emptyDir卷的Pod和不受controller管理的Pod。詳情請參見節點排水規則。
步驟 4 單擊“確定”,等待完成節點排水。