使用 kubectl drain 從集群中移除節點


對節點執行維護操作之前(例如:內核升級,硬件維護等),您可以使用 kubectl drain 安全驅逐節點上面所有的 pod。安全驅逐的方式將會允許 pod 里面的容器遵循指定的 PodDisruptionBudgets 執行優雅的中止

注: 默認情況下,kubectl drain 會忽略那些不能殺死的系統類型的 pod,如果您想了解更多詳細的內容,請參考kubectl drain

kubectl drain 返回成功表明所有的 pod (除了前面排除的那些)已經被安全驅逐(遵循期望優雅的中止期,並且沒有違反任何應用程序級別的中斷預算)。然后,通過對物理機斷電或者在雲平台上刪除節點所在的虛擬機,都能安全的將節點移除。

首先,需要確定希望移除的節點的名稱。您可以通過下面命令列出集群里面所有的節點:

kubectl get nodes 

接下來,告知 Kubernetes 移除節點:

kubectl drain <node name> 

執行完成后,如果沒有任何錯誤返回,您可以關閉節點(如果是在雲平台上,可以刪除支持該節點的虛擬機)。如果在維護操作期間想要將節點留在集群,那么您需要運行下面命令:

kubectl uncordon <node name> 

然后,它將告知 Kubernetes 允許調度新的 pod 到該節點。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM