GKE オートスケーリング

docker

はじめに

このページでは、GKEのオートスケーリングを調べた、試した内容をメモします。

スケーリングの種類

項目内容
クラスタオートスケーラークラスタのノードプールのスケーリング手法。
水平ポッド自動スケーリング(HPA)ワークロード内のポッド数を自動的に調整
垂直ポッド自動スケーリング(VPA)コンテナのCPU、メモリの調整

クラスタオートスケーリングの前提条件

コンテナ環境においては、コンテナ自身はアプリケーションを実行するだけであり、半永久的に保管する必要のあるデータはコンテナ内には存在しない。

クラスタの自動スケーリング時にリソースが削除、移動するとワークロードが中断することがある。
1つしか存在しないレプリカがあり、そのレプリカがのっているノードを削除する場合、
そのレプリカは他のノード上に再スケジュールされる可能性がある。

クラスタオートスケーリング

クラスタ作成時に自動スケーリングを有効化。

gcloud container clusters create test-cluster --num-nodes 2 \
  --enable-autoscaling \
  --min-nodes 1 \
  --max-nodes 3 \
  --zone asia-east1-a \
  --node-locations asia-east1-a,asia-east1-c
項目内容
–num-nodes 2作成するノード数
–enable-autoscalingオートスケーリングの有効化
–min-nodes 1最小1ノード数までスケールインする
–max-nodes 3最大3ノード数までスケールアウトする
–zone asia-east1-aコントロールプレーンのコンピューティングゾーン
–node-locationsノードを配置するゾーン

–node-locationsフラグがあると、マルチゾーンクラスタとなる。
上記だと、最初に2ノード*2ゾーンの4ノードが作成され、その後、1ノード*2ゾーンに縮小される。
ワークロードの負荷が高くなると2ノード*3ノードの6ノードまでスケールアウトする。

クラスターにノードプールを複数作成することも可能。

作成したtest-clusterに新規にオートスケーリング対応のノードプールを追加する。

gcloud container node-pools create test-pool \
  --cluster test-cluster \
  --enable-autoscaling \
  --min-nodes 1 \
  --max-nodes 2 \
  --zone asia-east1-a

既存のノードプールの自動スケーリングを有効にする

gcloud container clusters update test-cluster --enable-autoscaling \
  --min-nodes 1 \
  --max-nodes 10 \
  --zone asia-east1-a \
  --node-pool default-pool

既存のノードプールの自動スケーリングを有効/無効にする

gcloud container clusters update test-cluster --no-enable-autoscaling \
  --node-pool default-pool

コメント

タイトルとURLをコピーしました