ワークロードに単一テナントノードを使用すれば、ノードグループ オートスケーラーを使用してノードグループのサイズを自動的に管理できます。自動スケーリングは、ノードグループの作成中または作成後に構成できます。オートスケーラーを使用すると、以下を行うことにより、単一テナントノード グループのサイズを自動的に管理できます。
該当ノードグループ上の別の仮想マシン(VM)インスタンスの容量が不足している場合に、ノードグループのサイズを増やす。オートスケーラーがノードグループのサイズを増やすと、VM のスケジュールが透過的に設定されます。
空のノードが存在する場合にノードグループのサイズを小さくする。これにより、未使用の単一テナントノードの料金を支払う必要がなくなります。
次の図に例を示します。
ノードグループのオートスケーラーは、空のノードがないノードグループに VM がデプロイされると、ノードグループに新しいノードを追加してスケールアウトします。
ノードグループのオートスケーラーは、単一テナントノード グループから空のノードを削除することでスケーリングします。
オートスケーラー モード
デフォルトでは、オートスケーラーは、ノードグループで有効になっていません。オートスケーラーが有効になっていない場合は、ノードグループのサイズを手動で管理する必要があります。ノードグループでオートスケーラーを有効にすると、オートスケーラーがノードグループのサイズを拡大および縮小(スケールアウトおよびスケールイン)するか、グループのサイズの拡大のみ(スケールアウトのみ)を行うかを指定できます。
スケールアウトとスケールイン
このモードでは、ノードグループのオートスケーラーは、ノードグループのサイズの拡大(スケールアウト)と縮小(スケールイン)の両方を行います。このモードでは、ノードグループの最大サイズと最小サイズを指定する必要があります。オートスケーラーは、ノードグループのサイズを指定された最大値より大きくすることも、指定された最小値より小さくすることもありません。
オートスケーラーは、別の VM のための容量がないノードグループに VM のスケジュールを設定するリクエストがあると、ノードグループのサイズをスケールアウトします。逆に、オートスケーラーは、ノードグループ内に空のノードがある場合、ノードグループのサイズをスケールインします。
スケールアウトのみ
このモードでは、オートスケーラーは VM のスケジュールを設定するリクエストに応じてノードグループのサイズを増やしますが、ノードグループから空のノードを削除しません。Google では、同じ物理サーバー上にライセンスが必要な BYOL ワークロードなどの物理サーバーのアフィニティを必要とするワークロードを単調に増やす場合にこのモードをおすすめしています。
ノードグループが、ノードグループ内で移行のメンテナンス ポリシーで構成されている場合は、このモードを使用する必要があります。
ノードグループのサイズ範囲
オートスケーラーを有効にするときは、ノードグループのサイズの最小値と最大値を指定して、ノードグループのサイズ範囲を設定します。
最小サイズの値を指定しない場合、オートスケーラーは最小サイズをゼロ(0)に設定します。最小サイズの値を指定する場合は、0 以上の整数で、最大サイズ以下の値を指定する必要があります。
ノードグループの最大サイズの値を指定する必要があります。この値は 0 以上 100 以下の整数にする必要があります。この値は、単一テナント ノード グループの最大許容サイズであり、指定した最小値以上である必要があります。
ノードグループの最大サイズである 100 を超える可能性のあるワークロードに対応するには、アフィニティ ラベルが一致する複数のノードグループ(workload:in:my-autoscaled-node-groups
など)を作成します。次に、そのアフィニティ ラベルを使用して VM のスケジュールを設定し、各グループで自動スケーリングを有効にして、ノードグループの動的スケーリング グループを作成します。
可用性
単一テナントノード オートスケーラーは、単一テナントノードをサポートするリージョンでのみ使用できます。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
ノードグループのオートスケーラーを有効にする
新しいノードグループで自動スケーリングを構成します。
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
以下を置き換えます。
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 です。
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 }
以下を置き換えます。
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 はメンテナンス イベントによって終了された後、同じノードで再起動されます。
オートスケーラーの設定を更新する
ノードグループのオートスケーラー設定を変更するには、オートスケーラー モードを更新するか、ノードグループの最小サイズと最大サイズを更新します。
gcloud
以下の例は、node-groups
update
コマンドを使用してノードグループのオートスケーラーのモードを変更する方法を示しています。
gcloud compute sole-tenancy node-groups update name \ --autoscaler-mode mode \ --max-nodes max-nodes \ --min-nodes min-nodes
以下を置き換えます。
name
: オートスケーラー モードを変更するノードグループの名前。mode
: このノードグループのオートスケーラーのモード。次のいずれかに設定します。off
: オートスケーラーを無効にします。on
: スケールインとスケールアウトを有効にします。only-scale-out
: スケールアウトのみを有効にします。最小限のサーバーでホストされている VM を再起動するようにノードグループが構成されている場合は、このモードを使用する必要があります。
max-nodes
: ノードグループの最大サイズ。100 以下、かつ、min-nodes
以上の値に設定します。min-nodes
: ノードグループの最小サイズ。max-nodes
以下の整数値にする必要があります。デフォルト値は 0 です。
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 } }
以下を置き換えます。
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 です。
自動スケーリングされたノードグループのサイズを手動で更新する
オートスケーラーが有効になっている場合、ノードグループのサイズは自動的に管理されますが、そのノードグループの 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" } }
以下を置き換えます。
project-id
: オートスケーラー モードを変更するノードグループを含むプロジェクトの ID。group-zone
: オートスケーラー モードを変更するノードグループを含むゾーン。group-name
: オートスケーラー モードを変更するノードグループの名前。template-name
: ノードグループを作成するのに使用したノード テンプレートの名前。mode
: このノードグループのオートスケーラーのモード。このノードグループでオートスケーラーを無効にするには、OFF
に設定します。
オートスケーラーのアクティビティを表示する
Google Cloud コンソールで、ノードグループのサイズを調整するオートスケーラーを表示します。Google Cloud コンソールにノードグループの現在のサイズが表示されます。オートスケーラーによってグループのサイズが調整されている場合は、ノードグループのターゲット サイズも確認できます。
コンソール
Google Cloud コンソールで、[単一テナントノード] ページに移動します。
[ノードグループ] をクリックします。
各ノードグループ内のノード数を表示します。Compute Engine によってノードグループのスケーリングが行われている場合は、ノードのターゲット数も確認できます。
次のステップ
- 既存のライセンスを含むイメージを Google Cloud に移行する方法を学習する。
- クラスタ オートスケーラーについて学習する。
- マネージド インスタンス グループのオートスケーラーについて学習する。