単一テナントノードへの高度なメンテナンス管理を有効にする


単一テナントに対する高度なメンテナンス管理を使用すると、単一テナントノード グループの計画的なメンテナンス イベントを制御し、メンテナンス関連の中断を最小限に抑えることができます。この機能は、単一テナントノード グループでのみ使用できます。既存の仮想マシンでこの機能を使用するには、まず、高度なメンテナンス管理が有効になっている単一テナントノード グループに VM を移動する必要があります。

単一テナンシーに対する高度なメンテナンス管理機能により、次のことが可能になります。

  • 単一テナントノードの定期メンテナンス イベントを28 日前に確認します。
  • メンテナンスを直ちにトリガーするか、後で実行するようにスケジュールします。メンテナンスを直ちにトリガーすると、リクエストをトリガーしてから 24 時間以内にメンテナンスが実施されます。

高度なメンテナンス管理を使用する単一テナントノード グループを作成するプロセスは次のとおりです。

  1. 互換性のある単一テナントノード グループで、高度なメンテナンス管理にオプトインします。この機能は、単一テナントノード グループでのみ使用できます。既存の VM または単一テナントのワークロードでこの機能を使用するには、まず、高度なメンテナンス管理が有効になっている単一テナントノード グループに VM を移動する必要があります。

  2. 単一テナントノードの今後のメンテナンスを確認します。単一テナントノードのメンテナンスは、最大で 28 日ごとに行われます。ノードのメンテナンス イベントを確認できるのは、そのノードのメンテナンスがスケジュールされている 24 時間のメンテナンスの時間枠が始まる 28 日前です。

  3. 単一テナントノードのメンテナンスがスケジュールされている場合、スケジュールされたメンテナンスの時間枠が開始される前に、次のことができます。

    • メンテナンスを直ちにトリガーするか、後で実行するようにスケジュールします。メンテナンスを直ちにトリガーした場合は、リクエストをトリガーしてから 24 時間以内にメンテナンスが行われます。選択する予定日時は、最初のメンテナンスの時間枠の開始時刻よりも前である必要があります。

    • メンテナンスを直ちにトリガーしない場合や、後で実行するようにスケジュールする場合は、メンテナンスは最初のメンテナンスの時間枠で指定された時間内に行われます。

高度なメンテナンス管理を有効にして、単一テナントノード グループを自動スケーリングすることができます。すべての場合で監査ログが生成されます。

制限事項

プレビュー ステージの単一テナンシー機能に対する高度なメンテナンス管理の制限事項は次のとおりです。

  • マシン ファミリー: この機能は、M1、M2、M3、C2、N2 の VM ファミリーでのみサポートされています。N1 VM ファミリーと N2D VM ファミリーではサポートされていません。
  • ローカル SSD と GPU: この機能でローカル SSD と GPU はサポートされていません。
  • メンテナンス ポリシー: この機能は、プレビュー ステージでデフォルトのメンテナンス ポリシー(ライブ マイグレーション)をサポートしています。再起動(BYOLv1)やノードグループ内で移行(BYOLv2)など、その他のメンテナンス ポリシーはサポートされていません。
  • ノード: この機能では、1 プロジェクト、1 ゾーンあたり最大 20 個のノードをサポートできます。
  • 既存の単一テナントノードの高度なメンテナンス管理: プレビュー ステージでは、高度なメンテナンス管理を行うために既存の単一テナントノード グループにオプトインすることはできません。高度なメンテナンス管理が有効になっている単一テナントノード グループで既存のワークロードを実行する場合は、まず高度なメンテナンス管理を有効にして新しいノードグループを作成してから、ワークロードをこのグループに移行する必要があります。同様に、高度なメンテナンス管理からオプトアウトするには、高度なメンテナンス管理が有効になっていない単一テナントノード グループに単一テナントノードを移行する必要があります。
  • 現在のメンテナンス ポリシーへの影響: この機能にオプトインすると、単一テナントノードに関連付けられている既存のメンテナンスの時間枠がオーバーライドされます。

費用

単一テナントノードで高度なメンテナンス管理を使用する場合、追加費用はかかりません。

準備

  • 単一テナントノードで VM をプロビジョニングする前に、割り当てを確認します。予約するノードの数とサイズによっては、割り当て量の追加リクエストが必要になる場合があります。
  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

単一テナントノードで高度なメンテナンス管理を有効にする

単一テナンシーの高度なメンテナンス管理は、プレビュー ステージ中のオプトイン機能です。この機能は、単一テナントノード グループでのみ使用できます。既存の VM または単一テナントのワークロードでこの機能を使用するには、まず、高度なメンテナンス管理が有効になっている単一テナントノード グループに VM を移動する必要があります。

コンソール

ノードグループの作成時に高度なメンテナンス管理にオプトインするには、[メンテナンス設定の構成] セクションで、[単一テナンシーの高度なメンテナンスにオプトインする] オプションを選択します。詳細については、単一テナントノード グループを作成するをご覧ください。

gcloud

単一テナントノード グループに VM を作成するには、gcloud beta compute sole-tenancy node-groups create コマンドを使用します。

次のコマンドの --maintenance-interval=RECURRENT フラグは、単一テナントノードが高度なメンテナンス管理にオプトインされたことを指します。

gcloud compute sole-tenancy node-groups create NODE_GROUP_NAME \
--node-template=NODE_TEMPLATE_NAME \
--zone=NODE_GROUP_ZONE \
--target-size=NODE_GROUP_SIZE \
--maintenance-interval=RECURRENT

以下を置き換えます。

  • NODE_GROUP_NAME: ノードグループの名前。

  • NODE_TEMPLATE_NAME: このグループの作成に使用するノード テンプレートの名前。

  • NODE_GROUP_SIZE: グループ内に作成するノードの数。

  • NODE_GROUP_ZONE: ノードグループを作成するゾーン。これは、ノードグループがベースとするノード テンプレートと同じリージョンに存在している必要があります。

REST

以前に作成したノード テンプレートに基づいて単一テナントノード グループを作成するには、nodeGroups.insert メソッドを使用します。

次のコマンドの maintenanceInterval パラメータは、単一テナントノードが高度なメンテナンス管理にオプトインされたことを指します。

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/NODE_GROUP_ZONE/nodeGroups
{
"name": "NODE_GROUP_NAME",
"nodeTemplate": "NODE_TEMPLATE_URL",
"zone": "NODE_GROUP_ZONE",
"size": "NODE_GROUP_SIZE",
"maintenanceInterval": "RECURRENT"
}

以下を置き換えます。

  • PROJECT_ID: ノードグループが存在するプロジェクトの名前。

  • NODE_GROUP_ZONE: ノードグループのゾーン。

  • NODE_GROUP_NAME: ノードグループの名前。

  • NODE_TEMPLATE_URL: このグループの作成に使用するノード テンプレートの名前。

  • NODE_GROUP_SIZE: グループ内に作成するノードの数。

ノードレベルのフラグは、以前に割り当てられた VM フラグをオーバーライドします。そのため、高度なメンテナンス管理にオプトインすると、以前のメンテナンス フラグがオーバーライドされます。

今後のメンテナンスの確認

単一テナントノードのメンテナンスは、最大で 28 日ごとに行われます。ノードのメンテナンス イベントを確認できるようになるのは、そのノードのメンテナンスがスケジュールされている 24 時間のメンテナンスの時間枠が始まる 28 日前です。

コンソール

単一テナントノード グループを高度なメンテナンス管理にオプトインすると、今後のメンテナンス イベントが次のように表示されます。

  1. Google Cloud コンソール で、[単一テナントノード] ページに移動します。

    [単一テナントノード] ページに移動

  2. [ノードグループ] をクリックして、単一テナントノード グループのリストを表示します。

  3. 単一テナントノード グループについては、テーブル内の [メンテナンス ステータス] 列と [メンテナンス時間] 列で今後のメンテナンスを確認できます。メンテナンスはノードレベルで設定されるため、ここに表示されるメンテナンス情報は、ノードグループ内の任意のノードの次回の定期メンテナンスです。

  4. 単一テナントノード グループ内の各ノードのメンテナンス情報を表示するには、ノードグループの [名前] をクリックして詳細ページを開きます。ノードグループ内のノードごとに、表の [メンテナンス ステータス] 列と [メンテナンス時間] 列に、今後のメンテナンス情報が表示されます。

gcloud

単一テナントノード グループのノードをメンテナンス情報とともに一覧表示するには、gcloud beta compute sole-tenancy node-groups list-nodes コマンドを使用します。

gcloud compute sole-tenancy node-groups list-nodes NODE_GROUP_NAME \
--format "table(name, status, node_type, instances, server_id, upcoming_maintenance)"

NODE_GROUP_NAME は、ノードの名前で置き換えます。

REST

単一テナントノード グループのノードをメンテナンス情報とともに一覧表示するには、nodeGroups.listNodes メソッドを使用します。

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/NODE_GROUP_ZONE/nodeGroups/NODE_GROUP_ID/listNodes

以下を置き換えます。

  • PROJECT_ID: ノードグループが存在するプロジェクトの名前。

  • NODE_GROUP_ZONE: ノードグループのゾーン。

  • NODE_GROUP_ID: ノードグループの ID。

nodeGroups.listNodes メソッドのレスポンスは次のとおりです。

{
  …
  "items": [
    …
    {
      "name": string,
      "status": string,
      …
      "upcomingMaintenance": {
        "canReschedule": boolean,
        "maintenanceType": enum, // SCHEDULED | UNSCHEDULED
        "windowStartTime": string, // RFC 3339 timestamp string
        "windowEndTime": string, // RFC 3339 timestamp string
        "latestWindowStartTime": string, // RFC 3339 timestamp string
        "maintenanceStatus": enum // PENDING | ONGOING
      },
      …
    },
    …
  ],
  …
}

ノードグループのメンテナンス イベントの詳細は次のとおりです。

パラメータ名 説明
windowStartTime メンテナンスの時間枠の開始時間。
windowEndTime メンテナンスの時間枠の終了時間。
latestWindowStartTime 最初のメンテナンスの時間枠の開始時間。メンテナンスを直ちにトリガーすることも、後の日時、ただし latestWindowStartTime より前にスケジュールすることもできます。
maintenanceType 実施されるメンテナンスの種類:
- スケジュール済み: このノードにはメンテナンスがスケジュールされています。
- スケジュールなし: メンテナンスは、通知されることがずっと少ない重要な更新を表します。
canReschedule メンテナンスのスケジュールを変更できるかどうか。
maintenanceStatus 現在のメンテナンス オペレーションのステータス:
- 保留中: メンテナンス オペレーションはまだ開始されていませんが、スケジュールされています。
進行中: メンテナンスの時間枠が開始されています。

メンテナンス イベントが表示されない場合は、ノードグループ内のノードにメンテナンスの予定がないことを意味します。

ノードのメンテナンスを直ちにトリガーする、またはメンテナンスをスケジュールする

単一テナントノード グループ内のどのノードにメンテナンスがスケジュールされているかが判明したら、次のいずれかを行います。

  • メンテナンスを直ちにトリガーする。メンテナンスを直ちにトリガーする場合は、リクエストをトリガーしてから 24 時間以内にメンテナンスが行われます。

  • 要件に基づいて、後で実行するようにメンテナンスをスケジュールします。

メンテナンスを直ちにトリガーしない場合や、後の日時で実行するようにスケジュールする場合、メンテナンスは最初のメンテナンスの時間枠内に行われます。ノードのメンテナンスが開始されると、一時停止または再スケジュールすることはできません。

コンソール

ノードのメンテナンスを直ちにトリガーするには、次の手順を行います。

  1. Google Cloud コンソール で、[単一テナントノード] ページに移動します。

    [単一テナントノード] ページに移動

  2. [ノードグループ] をクリックします。

  3. ノードグループの [名前] をクリックして詳細ページを開きます。

  4. メンテナンスを直ちにトリガーするノードを選択し、[今すぐ開始] をクリックします。

確認メッセージが表示され、メンテナンスはリクエストをトリガーしてから 24 時間以内に行われます。

ノードのメンテナンスをスケジュールするには、次の操作を行います。

  1. Google Cloud コンソール で、[単一テナントノード] ページに移動します。

    [単一テナントノード] ページに移動

  2. [ノードグループ] をクリックして、単一テナントノード グループのリストを表示します。

  3. ノードグループの [名前] をクリックして詳細ページを開きます。

  4. メンテナンスをスケジュールするノードを選択し、[メンテナンスのスケジュール] をクリックします。

  5. 表示される [メンテナンスをスケジュール] ペインで、任意のメンテナンスの日時を選択します。最初のメンテナンスの時間枠の開始時間よりも前であればいつでも、ノードのメンテナンスをスケジュールできます。

確認メッセージが表示され、メンテナンスはリクエストをトリガーしてから 24 時間以内に行われます。

gcloud

gcloud beta compute sole-tenancy node-groups perform-maintenance コマンドを使用して、単一テナントノードのメンテナンスを開始またはスケジュールします。

gcloud beta compute sole-tenancy node-groups perform-maintenance NODE_GROUP_NAME \
--zone=NODE_GROUP_ZONE \
--nodes=NODE_NAMES \
--window-start-time=WINDOW_START_TIME

以下を置き換えます。

  • NODE_GROUP_NAME: ノードグループの名前。

  • NODE_GROUP_ZONE: ノードグループのゾーン。

  • NODE_NAMES: メンテナンスを行うノードの名前。

  • WINDOW_START_TIME: メンテナンスの開始日時。メンテナンスをできるだけ早く開始する場合は、このフラグを省略します。

REST

nodeGroups.performMaintenance メソッドを使用して、単一テナントノードのメンテナンスを開始またはスケジュールします。

POST
https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/NODE_GROUP_ZONE/nodeGroups/NODE_GROUP_ID/performMaintenance
{
"nodes": "NODE_NAMES" // [Required] The user needs to list at least 1 node
"windowStartTime":  "WINDOW_START_TIME" // [Optional] RFC 3339 timestamp string
}

以下を置き換えます。

  • PROJECT_ID: ノードグループが存在するプロジェクトの名前。

  • NODE_GROUP_ZONE: ノードグループのゾーン。

  • NODE_GROUP_ID: ノードグループの ID。

  • NODE_NAMES: メンテナンスを行うノードの名前。

  • WINDOW_START_TIME: メンテナンスの開始日時。メンテナンスをできるだけ早く開始する場合は、このフィールドを省略します。

ノードの [メンテナンス ステータス] フィールドに、メンテナンス の処理中に次のステータスが表示されます。

  • 保留中: メンテナンス オペレーションはまだ開始されていませんが、スケジュールされています。
  • 進行中: メンテナンスの時間枠が開始されています。メンテナンス イベントは、ノードのメンテナンスが正常に完了するまで進行中のままです。

メンテナンス完了を確認する

ノードのメンテナンス ステータスをクエリするには、gcloud beta compute sole-tenancy node-groups list-nodes コマンドまたは nodeGroups.listNodes メソッドを使用します。詳しくは、メンテナンス ステータスの確認をご覧ください。

  • メンテナンスが成功: 単一テナントノードのメンテナンスに成功すると、メンテナンス通知は削除されます。ノードグループ名をクエリすると、ノードの upcomingMaintenance セクションは存在しなくなります。Cloud Logging でシステム イベントログを確認できます。
  • メンテナンスに失敗: 24 時間の時間枠内にメンテナンスを完了できなかった場合、ノードのメンテナンスが完了するまで、メンテナンス イベントは進行中のままとなります。正常に完了すると、メンテナンス通知は削除されます。

指定した日時が単一テナントノードの高度なメンテナンス管理についての Google Cloud の内部上限を超えていると、選択した日時のメンテナンス トリガー リクエストが拒否されることがあります。この場合は、ノードのメンテナンスに別の日時を選択する必要があります。このノードの [メンテナンス ステータス] は [進行中] で、メンテナンスが正常に完了するまでその状態が続きます。

定期メンテナンスの日時を変更する

単一テナントノードの定期メンテナンスの日時は、ノードのメンテナンスをトリガーまたはスケジュールする場合と同じ手順で変更できます。