このページでは、Google Kubernetes Engine(GKE)クラスタを自動スケーリングする方法について説明します。クラスタ オートスケーラーの動作方法については、クラスタ オートスケーラーをご覧ください。
クラスタ オートスケーラーの使い方
以下では、クラスタ オートスケーラーの使い方を説明します。
自動スケーリングを使用したクラスタの作成
gcloud
自動スケーリングを使用してクラスタを作成するには、--enable-autoscaling
フラグを使用して --min-nodes
と --max-nodes
を指定します。
次のコマンドは 30 ノードのクラスタを作成します。ノード自動スケーリングが有効になり、クラスタ負荷に基づいてノード数が変更されます。このクラスタ オートスケーラーは、デフォルトのノードプールのサイズを最小で 15 ノード、最大で 50 ノードまで変化させることができます。
gcloud container clusters create cluster-name --num-nodes 30 \
--enable-autoscaling --min-nodes 15 --max-nodes 50 [--zone compute-zone]
コマンドの内容:
--num-nodes
では、クラスタの各ゾーンに作成するノードの数を指定します。デフォルトは 3 です。--enable-autoscaling
は、自動スケーリングが有効であることを示します。--min-nodes
には、デフォルト ノードプール内の最小ノード数を指定します。--max-nodes
には、デフォルト ノードプール内の最大ノード数を指定します。--zone
には、オートスケーラーが新しいノードを作成するコンピューティング ゾーンを指定します。
Console
デフォルト ノードプールの自動スケーリングが有効にされたクラスタを新しく作成するには:
Cloud Console で Google Kubernetes Engine のメニューに移動します。
[クラスタを作成] ボタンをクリックします。
必要に応じてクラスタを構成します。
ナビゲーション ペインの [ノードプール] で [default-pool] をクリックします。
[自動スケーリングの有効化] チェックボックスをオンにします。
[ノードの最小数] フィールドと [ノードの最大数] フィールドの値を必要に応じて変更します。
[作成] をクリックします。
自動スケーリング対応のノードプールの追加
gcloud
次のコマンドは、サイズが 3(デフォルト)のノードプールを作成します。ノードの自動スケーリングは、クラスタの負荷に基づいて行われ、ノードプールを最大 5 ノードと最小 1 ノードの範囲内でスケーリングします。
gcloud container node-pools create pool-name --cluster cluster-name \
--enable-autoscaling --min-nodes 1 --max-nodes 5 [--zone compute-zone]
コマンドの内容:
--cluster
には、ノードが作成されるクラスタを指定します。--enable-autoscaling
は、自動スケーリングが有効であることを示します。--min-nodes
には、ノードプール内の最小ノード数を指定します。--max-nodes
には、ノードプール内の最大ノード数を指定します。--zone
には、オートスケーラーが新しいノードを作成するコンピューティング ゾーンを指定します。
Console
自動スケーリング対応のノードプールを既存のクラスタに追加するには:
Cloud Console で Google Kubernetes Engine のメニューに移動します。
目的のクラスタをクリックしてから、[編集] をクリックします。
[ノードプールを追加] をクリックします。
必要に応じてノードプールを構成します。
[サイズ] セクションで、[自動スケーリングの有効化] チェックボックスをオンにします。
必要に応じて [最小サイズ] フィールドと [最大サイズ] フィールドの値を変更します。
[保存] をクリックします。
既存のノードプールの自動スケーリングを有効にする
gcloud
既存のノードプールの自動スケーリングを有効にするには、次のコマンドを実行します。
gcloud container clusters update cluster-name --enable-autoscaling \
--min-nodes 1 --max-nodes 10 --zone compute-zone --node-pool default-pool
コマンドの内容:
--enable-autoscaling
は、自動スケーリングが有効であることを示します。--min-nodes
には、ノードプール内の最小ノード数を指定します。--max-nodes
には、ノードプール内の最大ノード数を指定します。--zone
には、クラスタのコンピューティング ゾーンを指定します。--node-pool
には、目的のノードプールを指定します。ノードプールが 1 つしかない場合は、このフラグにdefault-pool
を指定します。
Console
既存のノードプールの自動スケーリングを有効にするには:
Cloud Console で Google Kubernetes Engine のメニューに移動します。
目的のクラスタをクリックしてから、[編集] をクリックします。
ページ下部にある [ノードプール] メニューで、目的のノードプールのタイトルをクリックして選択し、展開します。デフォルトのノードプールは、デフォルトで展開されています。[編集] をクリックします。
[サイズ] セクションで、[自動スケーリングの有効化] チェックボックスをオンにします。
必要に応じて [最小サイズ] フィールドと [最大サイズ] フィールドの値を変更します。
[保存] をクリックします。
既存のノードプールの自動スケーリングを無効にする
gcloud
特定のノードプールの自動スケーリングを無効にするには、次のコマンドを実行します。
gcloud container clusters update cluster-name --no-enable-autoscaling \
--node-pool pool-name [--zone compute-zone --project project-id]
このコマンドでは、--no-enable-autoscaling
により、クラスタの自動スケーリングが無効になります。
クラスタのサイズは、クラスタの現在のデフォルト ノードプールのサイズに固定されます。このサイズは、手動で更新できます。
Console
特定のノードプールの自動スケーリングを無効にするには:
Cloud Console で Google Kubernetes Engine のメニューに移動します。
単一のクラスタにラベルを追加するには、鉛筆の形をしたクラスタの編集ボタンをクリックします。
ページ下部にある [ノードプール] メニューで、目的のノードプールのタイトルをクリックして選択し、展開します。デフォルトのノードプールは、デフォルトで展開されています。[編集] をクリックします。
[サイズ] セクションで、[自動スケーリングの有効化] チェックボックスをオフにします。
[保存] をクリックします。
トラブルシューティング
クラスタ オートスケーラーの次のトラブルシューティング情報をご覧ください。
- クラスタ オートスケーラーの制限のいずれかが発生している可能性があります。
- クラスタのダウンスケーリングに問題がある場合は、Pod のスケジューリングと中断をご覧ください。
kube-system
Pod に PodDisruptionBudget を追加する必要があります。kube-system
Pod に PodDisruptionBudget を手動で追加する方法の詳細については、クラスタ オートスケーラーに関するよくある質問をご覧ください。