ワークロードに単一テナントノードを使用すれば、ノードグループ オートスケーラーを使用してノードグループのサイズを自動的に管理できます。自動スケーリングは、ノードグループの作成中または作成後に構成できます。
オートスケーラーを使用すると、以下を行うことにより、単一テナントノード グループのサイズを自動的に管理できます。
該当ノードグループ上の別の仮想マシン(VM)インスタンスの容量が不足している場合に、ノードグループのサイズを増やす。オートスケーラーがノードグループのサイズを増やすと、VM のスケジュールが透過的に設定されます。
空のノードが存在する場合にノードグループのサイズを小さくする。これにより、未使用の単一テナントノードの料金を支払う必要がなくなります。
ノードグループをスケーリングするときに、オートスケーラーは、スケジュールされる VM に必要な容量、ターゲットとするノードの空き容量、ノードグループの自動スケーリング ポリシーを考慮します。必要な容量は VM のサイズにのみ基づきます。空き容量は、ノードのサイズ、ノードにすでにスケジュールされている VM、オプションの CPU のオーバーコミット率に基づいて推定されます。
次の図に例を示します。
ノードグループのオートスケーラーは、空のノードがないノードグループに VM がデプロイされると、ノードグループに新しいノードを追加してスケールアウトします。
ノードグループのオートスケーラーは、単一テナントノード グループから空のノードを削除することでスケーリングします。
オートスケーラー モード
デフォルトでは、オートスケーラーは、ノードグループで有効になっていません。オートスケーラーが有効になっていない場合は、ノードグループのサイズを手動で管理する必要があります。ノードグループでオートスケーラーを有効にすると、オートスケーラーがノードグループのサイズを拡大および縮小(スケールアウトおよびスケールイン)するか、グループのサイズの拡大のみ(スケールアウトのみ)を行うかを指定できます。
スケールアウトとスケールイン
このモードでは、ノードグループのオートスケーラーは、ノードグループのサイズの拡大(スケールアウト)と縮小(スケールイン)の両方を行います。このモードでは、ノードグループの最大サイズと最小サイズを指定する必要があります。オートスケーラーは、ノードグループのサイズを指定された最大値より大きくすることも、指定された最小値より小さくすることもありません。
スケールアウトは、容量不足が原因で VM のスケジューリングが失敗した場合にトリガーされます。この問題を解決するために、新しいノードがグループに追加され、オペレーションが再試行されます。
ノードが一定期間空のままになると、スケールインがトリガーされます。空のノードは、VM がノードグループから削除または移行された結果として生じます。ノードグループの自動スケーリング ポリシーで許可されている場合、空のノードは安定化期間の後に削除されるようスケジュールされます。安定化期間は、必要な場合にそのノードをまた使用できるようにするためのものです。
スケールアウトのみ
このモードでは、オートスケーラーは VM のスケジュールを設定するリクエストに応じてノードグループのサイズを増やしますが、ノードグループから空のノードを削除しません。Google では、同じ物理サーバー上にライセンスが必要な BYOL ワークロードなどの物理サーバーのアフィニティを必要とするワークロードを単調に増やす場合にこのモードをおすすめしています。
ノードグループが、ノードグループ内で移行のメンテナンス ポリシーで構成されている場合は、このモードを使用する必要があります。
ノードグループのサイズ範囲
オートスケーラーを有効にするときは、ノードグループのサイズの最小値と最大値を指定して、ノードグループのサイズ範囲を設定します。
最小サイズの値を指定しない場合、オートスケーラーは最小サイズをゼロ(0)に設定します。最小サイズの値を指定する場合は、0 以上の整数で、最大サイズ以下の値を指定する必要があります。
ノードグループの最大サイズの値を指定する必要があります。この値は 0 以上 100 以下の整数にする必要があります。この値は、単一テナント ノード グループの最大許容サイズであり、指定した最小値以上である必要があります。
ノードグループの最大サイズである 100 を超える可能性のあるワークロードに対応するには、アフィニティ ラベルが一致する複数のノードグループ(workload:in:my-autoscaled-node-groups
など)を作成します。次に、そのアフィニティ ラベルを使用して VM のスケジュールを設定し、各グループで自動スケーリングを有効にして、ノードグループの動的スケーリング グループを作成します。
可用性
単一テナントノード オートスケーラーは、単一テナントノードをサポートするリージョンでのみ使用できます。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
group-name
: 作成するノードグループの名前。template-name
: ノードグループを作成するのに使用するノード テンプレートの名前。size
: ノードグループ内のノードのターゲット初期数。maintenance-policy
: VM を移行するかどうか、ホスト メンテナンス イベント中に VM を再起動するかどうかを指定します。次のいずれかの値に設定します。default
: VM は新しいノードにライブ マイグレーションされます。migrate-within-node-group
: VM はノードグループ内の別のノードにライブ マイグレーションされます。restart-in-place
: VM はメンテナンス イベントによって終了された後、同じノードで再起動されます。
zone
: ノードグループを作成するゾーン。mode
: このノードグループのオートスケーラーのモード。次のいずれかの値に設定します。off
: オートスケーラーを無効にします。on
: スケールインとスケールアウトを有効にします。only-scale-out
: スケールアウトのみを有効にします。最小限のサーバーでホストされている VM を再起動するようにノードグループが構成されている場合は、このモードを使用する必要があります。
max-nodes
: ノードグループの最大サイズ。100 以下、かつ、min-nodes
以上の値に設定します。min-nodes
: ノードグループの最小サイズ。max-nodes
以下の整数値にする必要があります。デフォルト値は 0 です。project-id
: オートスケーラーのあるノードグループを追加するプロジェクトの ID。zone
: 新しいノードグループを作成するゾーン。initial-node-count
: ノードグループを作成するときに必要です。これにより、ノードグループ内のノードの初期数が指定されます。min-nodes
の値が初期ノード数よりも大きい場合、ノードグループのサイズはmin-nodes
の値にスケールアウトされます。group-name
: 新しいノードグループの名前。template-name
: ノードグループを作成するのに使用するノード テンプレートの名前。mode
: このノードグループのオートスケーラーのモード。次のいずれかに設定します。OFF
: オートスケーラーを無効にします。ON
: スケールインとスケールアウトを有効にします。ONLY_SCALE_OUT
: スケールアウトのみを有効にします。最小限のサーバーでホストされている VM を再起動するようにノードグループが構成されている場合は、このモードを使用する必要があります。
max-nodes
: ノードグループの最大サイズ。100 以下、かつ、min-nodes
以上の値に設定します。min-nodes
: ノードグループの最小サイズ。max-nodes
以下の整数値にする必要があります。デフォルト値は 0 です。maintenance-policy
: VM を移行するかどうか、ホスト メンテナンス イベント中に VM を再起動するかどうかを指定します。次のいずれかの値に設定します。DEFAULT
: VM は新しいノードにライブ マイグレーションされます。MIGRATE_WITHIN_NODE_GROUP
: VM はノードグループ内の別のノードにライブ マイグレーションされます。RESTART_IN_PLACE
: VM はメンテナンス イベントによって終了された後、同じノードで再起動されます。
name
: オートスケーラー モードを変更するノードグループの名前。mode
: このノードグループのオートスケーラーのモード。次のいずれかに設定します。off
: オートスケーラーを無効にします。on
: スケールインとスケールアウトを有効にします。only-scale-out
: スケールアウトのみを有効にします。最小限のサーバーでホストされている VM を再起動するようにノードグループが構成されている場合は、このモードを使用する必要があります。
max-nodes
: ノードグループの最大サイズ。100 以下、かつ、min-nodes
以上の値に設定します。min-nodes
: ノードグループの最小サイズ。max-nodes
以下の整数値にする必要があります。デフォルト値は 0 です。project-id
: オートスケーラー モードを変更するノードグループを含むプロジェクトの ID。group-zone
: オートスケーラー モードを変更するノードグループを含むゾーン。group-name
: オートスケーラー モードを変更するノードグループの名前。template-name
: ノードグループを作成するのに使用したノード テンプレートの名前。mode
: このノードグループのオートスケーラーのモード。次のいずれかに設定します。OFF
: オートスケーラーを無効にします。ON
: スケールインとスケールアウトを有効にします。ONLY_SCALE_OUT
: スケールアウトのみを有効にします。ノードグループが、ノードグループ内で移行のメンテナンス ポリシーで構成されている場合は、このモードを使用する必要があります。
max-nodes
: ノードグループの最大サイズ。100 以下、かつ、min-nodes
以上の値に設定します。min-nodes
: ノードグループの最小サイズ。max-nodes
以下の整数値にする必要があります。デフォルト値は 0 です。project-id
: オートスケーラー モードを変更するノードグループを含むプロジェクトの ID。group-zone
: オートスケーラー モードを変更するノードグループを含むゾーン。group-name
: オートスケーラー モードを変更するノードグループの名前。template-name
: ノードグループを作成するのに使用したノード テンプレートの名前。mode
: このノードグループのオートスケーラーのモード。このノードグループでオートスケーラーを無効にするには、OFF
に設定します。Google Cloud コンソールで、[単一テナントノード] ページに移動します。
[ノードグループ] をクリックします。
各ノードグループ内のノード数を表示します。Compute Engine によってノードグループのスケーリングが行われている場合は、ノードのターゲット数も確認できます。
- 既存のライセンスを含むイメージを Google Cloud に移行する方法を学習する。
- クラスタ オートスケーラーについて学習する。
- マネージド インスタンス グループのオートスケーラーについて学習する。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
ノードグループのオートスケーラーを有効にする
新しいノードグループで自動スケーリングを構成します。
gcloud
以下の例は、ノードグループの作成時に
node-groups create
コマンドを使用してオートスケーラーを有効にする方法を示しています。既存のノードグループにオートスケーラーを追加するには、node-groups update
コマンドを使用します。gcloud compute sole-tenancy node-groups create group-name \ --node-template template-name \ --target-size size \ --maintenance-policy maintenance-policy \ --zone zone \ --autoscaler-mode mode \ --max-nodes max-nodes \ --min-nodes min-nodes
以下を置き換えます。
REST
以下の例は、ノードグループの作成時に
nodeGroups.insert
コマンドを使用してオートスケーラーを有効にする方法を示しています。既存のノードグループにオートスケーラーを追加するには、nodeGroups.patch
コマンドを使用します。POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/nodeGroups?initialNodeCount=initial-node-count { "name": "group-name", "nodeTemplate": "template-name", "autoscalingPolicy": { "mode": "mode", "min_nodes": min-nodes, "max_nodes": max-nodes } "maintenancePolicy": maintenance-policy }
以下を置き換えます。
オートスケーラーの設定を更新する
ノードグループのオートスケーラー設定を変更するには、オートスケーラー モードを更新するか、ノードグループの最小サイズと最大サイズを更新します。
gcloud
以下の例は、
node-groups update
コマンドを使用してノードグループのオートスケーラーのモードを変更する方法を示しています。gcloud compute sole-tenancy node-groups update name \ --autoscaler-mode mode \ --max-nodes max-nodes \ --min-nodes min-nodes
以下を置き換えます。
REST
以下の例は、
nodeGroups.patch
コマンドを使用してノードグループのオートスケーラーのモードを変更する方法を示しています。PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name { "nodeTemplate": "template-name", "autoscalingPolicy": { "mode": "mode", "minSize": min-nodes, "maxSize": max-nodes } }
以下を置き換えます。
自動スケーリングされたノードグループのサイズを手動で更新する
オートスケーラーが有効になっている場合、ノードグループのサイズは自動的に管理されますが、そのノードグループの VM のスケジュール設定や削除を行い、グループサイズを手動で効率的に更新できます。
自動スケーリングされたノードグループのサイズを手動で減らすには、ノードが空になるまでノードから VM を削除します。ノードが空になると、オートスケーラーによって空のノードが削除されます。これにより、ノードグループのサイズが小さくなります。
自動スケーリングされたノードグループのサイズを手動で増やすには、現在のサイズよりも大きい値にグループの最小サイズを設定します。グループの最小サイズが現在のサイズよりも大きい値に設定されると、オートスケーラーによって、新たに指定された最小サイズまでグループのサイズがスケールアウトされます。
ノードグループがスケールアウトするようにのみ設定されている場合、オートスケーラーはグループサイズの増加を自動的に管理し、手動によるグループサイズの増加を無効にします。この設定を使用すると、ノードが空になり、その空のノードを削除できるようになるまでノードから VM を削除することで、グループのサイズを削減できます。
オートスケーラーを無効にする
オートスケーラーを使用してノードグループのサイズを自動的に管理する必要がなくなった場合、またはノードグループのサイズを手動で管理する必要がある場合、オートスケーラーを無効にします。
gcloud
gcloud compute sole-tenancy node-groups update name \ --autoscaler-mode OFF
name
は、自動スケーリング ポリシーを削除するノードグループの名前に置き換えます。REST
次の例は、
nodeGroups.patch
コマンドを使用してノードグループのオートスケーラーをオフにする方法を示しています。PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name { "nodeTemplate": "template-name", "autoscalingPolicy": { "mode": "mode" } }
以下を置き換えます。
オートスケーラーのアクティビティを表示する
Google Cloud コンソールで、ノードグループのサイズを調整するオートスケーラーを表示します。Google Cloud コンソールにノードグループの現在のサイズが表示されます。オートスケーラーによってグループのサイズが調整されている場合は、ノードグループのターゲット サイズも確認できます。
コンソール
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-23 UTC。
-