GCP GKE(k8s) kubernetes Tips
GKE Tips
ノードプールを指定してPodを実行する方法
メニューの [Kubernetes Engine] から [クラスタ] を選択。
下記のようにノードプールが表示されているので、指定するノードプールの名前を確認する。
manifestのDeploymentの場合、
apiVersion: apps/v1beta1 kind: Deployment metadata: name: test-app spec: template: metadata: labels: app: test-app spec: nodeSelector: cloud.google.com/gke-nodepool: default-pool ...
specの中に、nodeSelector
を定義して cloud.google.com/gke-nodepool: [ノードプール名]
と記載するだけ。
クラスターのマシンタイプ変更(移行)する方法
# gcloudコマンドでノードプールを作成する machine-typeとnum-nodesでスペックと数を指定する。 gcloud container node-pools create [任意のノードプール名] --cluster [クラスタ名] --machine-type=custom-4-10240 --num-nodes=3 --zone [クラスタのゾーン名] # 下記コマンドで各ノードをスケジュール不可にします。 for node in $(kubectl get nodes -l cloud.google.com/gke-nodepool=default-pool -o=name); do kubectl cordon "$node"; done # kubectl drain コマンドを実行して各ノードのポッドを正常にドレイン(ノードからpodを強制排除)します。 for node in $(kubectl get nodes -l cloud.google.com/gke-nodepool=default-pool -o=name); do kubectl drain --force --ignore-daemonsets --delete-local-data --grace-period=10 "$node"; done # 上記コマンドが完了すると、ポッドが larger-pool ノードで実行されます。 # 不要となったノードプールを削除する。 gcloud container node-pools delete [削除したいノードプール名] --cluster [クラスタ名] --zone [クラスタのゾーン名]
参考URL: https://cloud.google.com/kubernetes-engine/docs/tutorials/migrating-node-pool?hl=ja