クラスタのサイズ変更


このページでは、クラスタのサイズを変更する方法について説明します。クラスタのサイズを変更して、クラスタ内のノードの数を増減できます。ノードプールを追加する方法と既存のノードプールを管理する方法については、ノードプールの追加と管理をご覧ください。

クラスタでノードを追加または削除すると、Google Kubernetes Engine(GKE)は、ノードプールにプロビジョニングされた基盤となる Compute Engine マネージド インスタンス グループ(MIG)から、関連付けられた仮想マシン(VM)インスタンスを追加または削除します。

クラスタのサイズを大きくする

クラスタのサイズを大きくする場合:

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

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

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

  • 削除するインスタンスに対してスケジュールされたポッドは強制終了されます
  • レプリケーション コントローラによって管理されているポッドは、コントローラによって残りのインスタンスに再スケジュールされます
  • レプリケーション コントローラで管理されていない Pod は再起動されません

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

始める前に

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

  • Google Kubernetes Engine API が有効になっていることを確認します。
  • Google Kubernetes Engine API の有効化
  • Google Cloud CLI がインストールされていることを確認します。
  • 次のいずれかの方法で、プロジェクトにデフォルトの Google Cloud CLI 設定をセットアップします。
    • プロジェクトのデフォルトの設定全般を確認する場合は、gcloud init を使用します。
    • gcloud config を使用して、プロジェクト ID、ゾーン、リージョンを個別に設定します。

    gcloud init

    1. gcloud init を実行して、次の操作を行います。

      gcloud init

      リモート サーバーで SSH を使用している場合は、--console-only フラグを指定して、コマンドがブラウザを起動しないようにします。

      gcloud init --console-only
    2. Google Cloud アカウントを使用できるように、gcloud CLI の承認手順を行います。
    3. 新しい構成を作成するか、既存の構成を選択します。
    4. Google Cloud プロジェクトを選択します。
    5. デフォルトの Compute Engine ゾーンを選択します。
    6. デフォルトの Compute Engine リージョンを選択します。

    gcloud config

    1. デフォルトのプロジェクト ID を設定します。
      gcloud config set project PROJECT_ID
    2. デフォルトの Compute Engine リージョン(例: us-central1)を設定します。
      gcloud config set compute/region COMPUTE_REGION
    3. デフォルトの Compute Engine ゾーン(例: us-central1-c)を設定します。
      gcloud config set compute/zone COMPUTE_ZONE
    4. gcloud を最新バージョンに更新します。
      gcloud components update

    デフォルトの場所を設定することで、gcloud CLI のエラー(One of [--zone, --region] must be supplied: Please specify location など)を防止できます。

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

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 フラグを省略します。

Console

クラスタのノードプールのサイズを変更するには、次の手順を行います。

  1. Cloud Console で Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

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

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

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

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

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

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

ドレインを使用してクラスタのサイズを小さくする

クラスタのサイズを手動で小さくして、各インスタンスの Pod をドレインした後で削除することができます。

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

クラスタのサイズを小さくしてドレインするには、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 はノードプールが存在している各ゾーンのノード数です。

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

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

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

次のステップ