[K8s]節點調度與隔離

這個主題目的是安全的維護節點,或移除節點 。

封鎖(隔離)Node

標記節點為不可調度, 新的pod不會調度到該節點,但不會影響該節點上任何現有pod 。
DaemonSet 創建的Pod會繞過調度程序,不遵守節點上的不可調度屬性。

kubectl cordon {NODENAME}


驅逐Node

安全驅逐節點上所有的Pod,被驅逐的Pod會優雅的終止。

kubectl drain {NODENAME}  --delete-local-data --ignore-daemonsets

–delete-local-data:非共用磁碟,刪除local資料
–ignore-daemonsets:強制移轉daemonsets


取消封鎖Node

節點恢復可以調度。


kubectl uncordon {NODENAME}


刪除Node

若Cluster在雲上,不一定會同步刪除VM,此時須到雲上手動刪除。


kubectl delete node {NODENAME}

備註:節點故障或斷線情境

根據 controller-manager的–pod-eviction-timeout備至,默認5分鐘之後 K8s会把Pod狀態設置為Unknown , 之後在其他節點啟動Pod。當故障節點恢復後,K8s會刪除故障節點上面的Unknown pod。如果要手動恢復,需用上述指令進行強制遷移。

使用 WordPress.com 設計專業網站
立即開始使用