クラスタのサイズ変更

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

始める前に

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

次のいずれかの方法で gcloud のデフォルトの設定を指定します。

  • gcloud init。デフォルトの設定全般を確認する場合に使用します。
  • gcloud config。プロジェクト ID、ゾーン、リージョンを個別に設定する場合に使用します。

gcloud init の使用

エラー One of [--zone, --region] must be supplied: Please specify location を受信した場合は、このセクションの内容を実施します。

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

    gcloud init

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

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

gcloud config の使用

  • デフォルトのプロジェクト ID を設定します。
    gcloud config set project project-id
  • ゾーンクラスタを使用する場合は、デフォルトのコンピューティング ゾーンを設定します。
    gcloud config set compute/zone compute-zone
  • リージョン クラスタを使用する場合は、デフォルトのコンピューティング リージョンを設定します。
    gcloud config set compute/region compute-region
  • gcloud を最新バージョンに更新します。
    gcloud components update

クラスタのサイズ変更

gcloud

クラスタのノードプールのサイズを変更するには、次のコマンドを実行します。

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

詳細については、gcloud container clusters resize のドキュメントをご覧ください。

Console

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

  1. Cloud Console で Google Kubernetes Engine のメニューに移動します。

    Google Kubernetes Engine のメニューに移動

  2. 鉛筆の形をしたクラスタの [編集] ボタンをクリックします。

  3. [ノードプール] セクションで、変更するノードプールの矢印を展開し、[現在のサイズ] フィールドの値を目的の値に変更して [保存] をクリックします。

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

  5. [保存] をクリックしてクラスタ変更画面を閉じます。

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

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

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

複数のゾーンにまたがるノードプールのサイズを増やす際、新しいサイズはゾーンごとのノードプール内のノードの数を表します。たとえば、2 つのゾーンにまたがるサイズ 2 のノードプールがある場合、総ノード数は 4 になります。ノードプールのサイズを 4 に変更すると、総ノード数は 8 になります。

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

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

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

マネージド インスタンス グループは、ポッドを実行しているインスタンスとポッドを実行していないインスタンスを区別しません。サイズを小さくすると、ランダムにインスタンスが削除されます。

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

クラスタのサイズを手動で小さくして、それらのインスタンスの Pod をドレインした後で削除できます。

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

クラスタのサイズを小さくしてドレインするには、次のコマンドを実行します。

gcloud container clusters resize cluster-name --node-pool pool-name \
  --num-nodes num-nodes

以下を置き換えます。

  • cluster-name: クラスタの名前。
  • pool-name: ノードプールの名前。
  • num-nodes: ゾーンクラスタ内のプール内のノードの数。マルチゾーン クラスタまたはリージョン クラスタを使用する場合、num-nodes はノードプールが存在している各ゾーンのノード数です。

コマンドライン オプションの説明については、クラスタのサイズ変更をご覧ください。

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

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

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

次のステップ