0. 新しいノードプールを作成 ```shell-session $ gcloud container node-pools create worker-pool \ --cluster=migration-tutorial \ --machine-type=e2-highmem-2 \ --num-nodes=5 ``` 1. GKEのノードをスケジュール不可にする。 ```shell-session $ kubectl get nodes -l cloud.google.com/gke-nodepool=default-pool NAME STATUS ROLES AGE VERSION gke-microservices-experi-default-pool-66a015a7-9pw2 Ready <none> 14d v1.19.10-gke.1700 gke-microservices-experi-default-pool-66a015a7-r07m Ready <none> 14d v1.19.10-gke.1700 gke-microservices-experi-default-pool-66a015a7-wtfa Ready <none> 14d v1.19.10-gke.1700 gke-microservices-experi-default-pool-66a015a7-xybc Ready <none> 14d v1.19.10-gke.1700 ``` ```shell-session $ for node in $(kubectl get nodes -l cloud.google.com/gke-nodepool=default-pool -o=name); do kubectl cordon "$node"; done node/gke-microservices-experi-default-pool-66a015a7-9pw2 cordoned node/gke-microservices-experi-default-pool-66a015a7-r07m cordoned node/gke-microservices-experi-default-pool-66a015a7-wtfa cordoned node/gke-microservices-experi-default-pool-66a015a7-xybc cordoned ``` 2. 各ノードのPodを正常にドレインします。 ```shell-session $ for node in $(kubectl get nodes -l cloud.google.com/gke-nodepool=default-pool -o=name); do kubectl drain --force --ignore-daemonsets --delete-emptydir-data --grace-period=10 "$node"; done ``` 参考: [異なるマシンタイプへのワークロードの移行  |  Kubernetes Engine  |  Google Cloud](https://cloud.google.com/kubernetes-engine/docs/tutorials/migrating-node-pool?hl=ja) 3. ノードプールの名前をかえるのがいやだったので、既存のノードプールを削除する 4. 同じ名前でノードプールを再作成 ```shell-session $ gcloud container node-pools create default-pool \ --cluster=microservices-experiment \ --machine-type=e2-standard-2 \ --num-nodes=3 ```