從 Google Kubernetes Engine 移除節點
學習如何手動移除 GKE 指定節點
文章目錄
在 GKE 上運作的 Kubernetes 叢集支援多個 node pool,每個 pool 可以根據需求調配不同的機器規格、自動擴展等設定,但當我們從網頁設定縮小 node pool 時,GKE 會隨機選擇 pool 中的機器來移除。有時我們會希望移除指定的機器,因此下面會介紹該如何手動移除特定節點。
找出想要移除的節點,比方說 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
- 請確認該 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
- http://pminkov.github.io/blog/removing-a-node-from-a-kubernetes-cluster-on-gke-google-container-engine.html
- https://cloud.google.com/compute/docs/gcloud-compute/#set_default_zone_and_region_in_your_local_client
相關文章
- Kubernetes 兩步安裝一次上手
- Kubernetes Service 深度剖析 - 標籤對於 Service 的影響
- Kubernetes Service 深度剖析 - 存取路徑差異
- Kubernetes Service 概念詳解
- 透過 Kubernetes Deployments 實現滾動升級
文章內容的轉載、重製、發佈,請註明出處: https://tachingchen.com/tw/
Twitter
Google+
Facebook
Reddit
LinkedIn
StumbleUpon
Pinterest
Email