Standard クラスタのサイズを変更する


このページでは、Google Kubernetes Engine(GKE)の Standard クラスタのサイズを手動で変更する方法について説明します。クラスタのサイズを変更すると、クラスタ内のノードの数を増減できます。また、クラスタを自動スケーリングできます。自動スケーリングでは、ワークロードやリソースの使用量の変化など、条件の変化に応じて GKE がノードプールのサイズを自動的に変更します。

ここで説明する手順は、クラスタ内の Pod の数に基づいて自動的にサイズ変更される GKE Autopilot クラスタには適用されません。

クラスタでノードを追加または削除すると、GKE は、ノードプールにプロビジョニングされた基盤となる Compute Engine マネージド インスタンス グループ(MIG)から、関連付けられた仮想マシン(VM)インスタンスを追加または削除します。ノードを削除する場合は、kubectl delete node を使用しないでください。ノードプールの基盤となる MIG 内の Compute Engine VM インスタンスが削除されないからです。クラスタ オートスケーラーを使用するか、手動でクラスタのサイズを小さくしてください。

始める前に

始める前に、次の作業が完了していることを確認してください。

  • Google Kubernetes Engine API を有効にする。
  • Google Kubernetes Engine API の有効化
  • このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、gcloud components update を実行して最新のバージョンを取得する。

クラスタのサイズを増やす

クラスタのサイズを増やすと、次の変化があります。

  • 既存のインスタンスと同じ構成を使用して新しいノード インスタンスが作成されます。
  • 新しい Pod を新しいインスタンスにスケジュールできます。
  • 既存の Pod が新しいインスタンスに移動されることはありません

gcloud

クラスタのノードプールのサイズを増やすには、gcloud container clusters resize コマンドを実行します。

gcloud container clusters resize CLUSTER_NAME --node-pool POOL_NAME \
    --num-nodes NUM_NODES

次のように置き換えます。

  • CLUSTER_NAME: サイズを変更するクラスタの名前。
  • POOL_NAME: サイズを変更するノードプールの名前。
  • NUM_NODES: ゾーンクラスタ内のプール内のノードの数。マルチゾーン クラスタまたはリージョン クラスタを使用する場合、NUM_NODES はノードプールが存在している各ゾーンのノード数です。

各ノードプールに対してこのコマンドを繰り返します。クラスタにノードプールが 1 つしかない場合は、--node-pool フラグを省略します。

コンソール

クラスタのノードプールのサイズを増やすには、次の手順を使用します。

  1. Google Cloud コンソールで Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

  2. 編集するクラスタの横にある [アクション] をクリックし、[編集] をクリックします。

  3. [詳細] タブの横にある [ノード] タブをクリックします。

  4. [ノードプール] セクションで、サイズを増やすノードプールの名前をクリックします。

  5. [サイズ変更] をクリックします。

  6. [ノード数] フィールドに、ノードプールに含めるノード数を入力し、[サイズ変更] をクリックします。

  7. 必要に応じてノードプールごとに同じ操作を繰り返します。

クラスタのサイズを小さくする

クラスタのサイズを小さくすると、次の変化があります。

  • GKE は、ドレイン プロセスを使用してインスタンスから Pod を削除し、削除するノードを正常に終了します。PodDisruptionBudgetterminationGracePeriodSeconds は、どちらも最大 1 時間有効です。
  • レプリケーション コントローラによって管理されている Pod は、コントローラによって再スケジュール設定され、残りのインスタンスで実行されます。
  • レプリケーション コントローラで管理されていない Pod は再起動されません

MIG は、Pod を実行しているインスタンスと Pod を実行していないインスタンスを区別しません。サイズを小さくすると、ランダムにインスタンスが削除されます。

ノードプールを追加する方法と既存のノードプールを管理する方法については、ノードプールの追加と管理をご覧ください。

gcloud

クラスタのノードプールのサイズを小さくするには、gcloud container clusters resize コマンドを実行します。

gcloud container clusters resize CLUSTER_NAME --node-pool POOL_NAME \
    --num-nodes NUM_NODES

次のように置き換えます。

  • CLUSTER_NAME: サイズを変更するクラスタの名前。
  • POOL_NAME: サイズを変更するノードプールの名前。
  • NUM_NODES: ゾーンクラスタ内のプール内のノードの数。マルチゾーン クラスタまたはリージョン クラスタを使用する場合、NUM_NODES はノードプールが存在している各ゾーンのノード数です。

各ノードプールに対してこのコマンドを繰り返します。クラスタにノードプールが 1 つしかない場合は、--node-pool フラグを省略します。

コンソール

クラスタのノードプールのサイズを小さくするには、次の手順を使用します。

  1. Google Cloud コンソールで Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

  2. 編集するクラスタの横にある [アクション] をクリックし、[編集] をクリックします。

  3. [詳細] タブの横にある [ノード] タブをクリックします。

  4. [ノードプール] セクションで、サイズを小さくするノードプールの名前をクリックします。

  5. [サイズ変更] をクリックします。

  6. [ノード数] フィールドに、ノードプールに含めるノード数を入力し、[サイズ変更] をクリックします。

  7. 必要に応じてノードプールごとに同じ操作を繰り返します。

クラスタの自動スケーリング

Kubernetes Engine のクラスタ オートスケーラー機能は、ワークロードやリソースの使用状況の変化などの状況の変化に応じて、ノードプールのサイズを自動的に変更します。

自動スケーリングの仕組みの詳細については、クラスタ オートスケーラーのドキュメントをご覧ください。クラスタに自動スケーリングを設定する方法については、クラスタの自動スケーリングを参照してください。

次のステップ