このページでは、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
フラグを省略します。
Console
クラスタのノードプールのサイズを増やすには、次の手順を使用します。
Google Cloud コンソールで Google Kubernetes Engine のページに移動します。
編集するクラスタの横にある more_vert [アクション] をクリックし、[編集] をクリックします。
[詳細] タブの横にある [ノード] タブをクリックします。
[ノードプール] セクションで、サイズを増やすノードプールの名前をクリックします。
edit [サイズ変更] をクリックします。
[ノード数] フィールドに、ノードプールに含めるノード数を入力し、[サイズ変更] をクリックします。
必要に応じてノードプールごとに同じ操作を繰り返します。
クラスタのサイズを小さくする
クラスタのサイズを小さくすると、次の変化があります。
- GKE は、ドレイン プロセスを使用してインスタンスから Pod を削除し、削除するノードを正常に終了します。
PodDisruptionBudget
とterminationGracePeriodSeconds
は、どちらも最大 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
フラグを省略します。
Console
クラスタのノードプールのサイズを小さくするには、次の手順を使用します。
Google Cloud コンソールで Google Kubernetes Engine のページに移動します。
編集するクラスタの横にある more_vert [アクション] をクリックし、[編集] をクリックします。
[詳細] タブの横にある [ノード] タブをクリックします。
[ノードプール] セクションで、サイズを小さくするノードプールの名前をクリックします。
edit [サイズ変更] をクリックします。
[ノード数] フィールドに、ノードプールに含めるノード数を入力し、[サイズ変更] をクリックします。
必要に応じてノードプールごとに同じ操作を繰り返します。
クラスタの自動スケーリング
Kubernetes Engine のクラスタ オートスケーラー機能は、ワークロードやリソースの使用状況の変化などの状況の変化に応じて、ノードプールのサイズを自動的に変更します。
自動スケーリングの仕組みの詳細については、クラスタ オートスケーラーのドキュメントをご覧ください。クラスタに自動スケーリングを設定する方法については、クラスタの自動スケーリングを参照してください。