從 Google Kubernetes Engine 移除節點
學習如何手動移除 GKE 指定節點

前言
在 GKE 上運作的 Kubernetes 叢集支援多個 node pool,每個 pool 可以根據需求調配不同的機器規格、自動擴展等設定,但當我們從網頁設定縮小 node pool 時,GKE 會隨機選擇 pool 中的機器來移除。有時我們會希望移除指定的機器,因此下面會介紹該如何手動移除特定節點。
Hands-On
找出想要移除的節點,比方說 gke-dummy-server-default-pool-16ce3e71-9192
$ kubectl get node
NAME STATUS AGE VERSION
gke-dummy-server-default-pool-16ce3e71-9192 Ready 15h v1.6.7
gke-dummy-server-default-pool-16ce3e71-s8w0 Ready 4d v1.6.7
透過 kubectl drain
指令,將原本部署在該節點的 Pod 移到其他節點上。
$ kubectl drain <node> --force --ignore-daemonsets
並且執行後可以看到將該節點狀態變成 Ready,SchedulingDisabled
。
$ kubectl get node
NAME STATUS AGE VERSION
gke-dummy-server-default-pool-16ce3e71-9192 Ready,SchedulingDisabled 15h v1.6.7
gke-dummy-server-default-pool-16ce3e71-s8w0 Ready 4d v1.6.7