從 Google Kubernetes Engine 移除節點

學習如何手動移除 GKE 指定節點

ta-ching chen

1 minute read

 文章目錄

前言 

在 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

接著就可以放心移除該節點!

$ gcloud config set project <project>
$ gcloud config set compute/zone <zone>
$ gcloud compute instance-groups managed delete-instances <instance group name> --instances=<node name>

如此該節點就成功移除了

$ kubectl get node
NAME                                                 STATUS                     AGE       VERSION
gke-dummy-server-default-pool-16ce3e71-s8w0          Ready                      4d        v1.6.7

Troubleshooting 

  • 請確認該 instance group 是否開在 zone asia-east1-c
$ gcloud compute instance-groups managed \
    delete-instances gke-dummy-server-default-pool-16ce3e71-grp \
    --instances=gke-dummy-server-default-pool-16ce3e71-9192

PROJECT        ZONE          INSTANCE                                     STATUS
dummy-project  asia-east1-c  gke-dummy-server-default-pool-16ce3e71-9192  FAIL
ERROR: (gcloud.compute.instance-groups.managed.delete-instances) Some requests did not succeed:
 - The resource 'projects/dummy-project/zones/asia-east1-c/instanceGroupManagers/gke-dummy-server-default-pool-16ce3e71-grp' was not found

參考連結 

相關文章

comments powered by Disqus