このページでは、クラスタのサイズを変更する方法について説明します。クラスタのサイズを変更して、クラスタ内のノードの数を増減できます。ノードプールを追加する方法と既存のノードプールを管理する方法については、ノードプールの追加と管理をご覧ください。
クラスタでノードを追加または削除すると、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
を実行して、次の操作を行います。gcloud init
リモート サーバーで SSH を使用している場合は、
--console-only
フラグを指定して、コマンドがブラウザを起動しないようにします。gcloud init --console-only
- Google Cloud アカウントを使用できるように、gcloud CLI の承認手順を行います。
- 新しい構成を作成するか、既存の構成を選択します。
- Google Cloud プロジェクトを選択します。
- デフォルトの Compute Engine ゾーンを選択します。
- デフォルトの Compute Engine リージョンを選択します。
- デフォルトのプロジェクト ID を設定します。
gcloud config set project PROJECT_ID
- デフォルトの Compute Engine リージョン(例:
us-central1
)を設定します。gcloud config set compute/region COMPUTE_REGION
- デフォルトの Compute Engine ゾーン(例:
us-central1-c
)を設定します。gcloud config set compute/zone COMPUTE_ZONE
gcloud
を最新バージョンに更新します。gcloud components update
gcloud init
gcloud config
デフォルトの場所を設定することで、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
クラスタのノードプールのサイズを変更するには、次の手順を行います。
Cloud Console で Google Kubernetes Engine のページに移動します。
編集するクラスタの横にある more_vert [アクション] をクリックし、[編集] をクリックします。
[詳細] タブの横にある [ノード] タブをクリックします。
[ノードプール] セクションで、サイズを変更するノードプールの名前をクリックします。
edit [サイズ変更] をクリックします。
[ノード数] フィールドに、ノードプールに含めるノード数を入力し、[サイズ変更] をクリックします。
必要に応じてノードプールごとに同じ操作を繰り返します。
ドレインを使用してクラスタのサイズを小さくする
クラスタのサイズを手動で小さくして、各インスタンスの 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 のクラスタ オートスケーラー機能は、ワークロードやリソースの使用状況の変化などの状況の変化に応じて、ノードプールのサイズを自動的に変更します。
自動スケーリングの仕組みの詳細については、クラスタ オートスケーラーのドキュメントをご覧ください。クラスタに自動スケーリングを設定する方法については、クラスタの自動スケーリングを参照してください。