k8s node節點維護


一、node節點維護流程

  1. 對k8s集群資源進行梳理,先確認集群資源是否允許進行該操作
  2. 若集群資源不足,可加入新的node節點之后再進行維護操作
  3. 確認無資源問題后進行pod驅逐:kubelet drain  <node_name>(
  4. 檢查對應節點狀態是否處於SchedulingDisabled
  5. 檢查node上是否無pod運行,切被驅逐的pod已經在其他節點運行正常
  6. 確認狀態為SchedulingDisabled,且pod已經在其他節點運行正常后執行后續操作
  7. 關閉集群相關服務及docker服務
  8. 關機維護
  9. 開機啟動相關服務(注意啟動順序)
  10. 解除node節點不可調度:kubectl uncordon node
  11. 創建測試pod,並使用節點標簽測試節點可以被正常調度

二、kubernetes處理node的命令詳解(cordon、drain、delete node區別)

  1. 主要目的:導致node處於不可調度狀態,新創建的pod容器不會調度在node上。
  2. cordon:將node置為SchedulingDisabled不可調度狀態,后續的新創建pod容器時scheduler調度不會考慮該node舊的pod容器不會正常受影響,仍可以對外提供正常服務。(特殊情況:pod容器如果跟node綁定的話,容器下次更新就不會回到原宿主機,該情況如何處理呢?可能設置成不可調度狀態就不太合適。調度器 預調度策略)
    恢復調度  kubectl uncordon node
  3. drain 驅逐節點:設置該node為不可調度狀態 cordon,驅逐node節點上pod,使其在其他節點上創建。gracefully terminate all pods
    恢復調度 kubectl uncordon node
  4. delete 節點:delete node后 kubernetes集群管控端獲取不到node信息。master節點刪除該node,失去對其控制,master不可對其恢復驅逐node上的pod容器。(如何驅趕呢?參考 https://blog.csdn.net/li_101357/article/details/89606269 ,主要是podGCcontroller來做這件事情)  疑問是:master刪除node了,GC怎么刪除呢?強制刪除
    恢復調度,需要進入node節點,重新加入集群





免責聲明!

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



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