グローバル拡張機能ポリシーを使用すると、プロジェクト内の複数のゾーンとリージョンにわたって拡張機能を管理できます。グローバル ポリシーを適用すると、VM Extension Manager は、ポリシー条件に一致するリージョンまたはゾーンの VM に、指定された拡張機能がインストールされ、実行されていることを確認します。
次の図は、グローバル拡張機能ポリシーを使用して、プロジェクト内の異なるゾーンとリージョンにまたがって VM に拡張機能を適用する方法を示しています。
上の図に示すように、グローバル拡張機能ポリシーはプロジェクト レベルで定義できます。VM Extension Manager は、選択条件に一致するすべての VM にこのポリシーを適用します。たとえば、プロジェクト内のすべてのゾーンとリージョンで env=prod ラベルの付いた VM を選択すると、VM Extension Manager は、指定した拡張機能(Ops エージェントや SAP 用拡張機能など)をこれらの VM にのみ適用します。
グローバル ポリシーのロールアウト計画
グローバル ポリシーは、ロールアウト プランを使用して、ゾーンとリージョン間の拡張機能のデプロイを管理します。ロールアウト プランを使用すると、拡張機能のデプロイを制御できるため、広範囲にわたる問題のリスクを最小限に抑えることができます。ロールアウト計画を使用すると、更新の順序とタイミングを定義して、段階的かつ制御されたロールアウトを確保できます。
グローバル ポリシーを作成または更新するときに、次のいずれかのロールアウト プランを指定できます。
- スロー ロールアウト: このロールアウトでは、一定期間にわたってさまざまなゾーンに拡張機能が段階的にデプロイされます。デフォルトの期間は 5 日間です。このアプローチをおすすめするのは、初期のロールアウトで潜在的な問題を特定して対処することで、フリート全体に影響する前に問題を解決できるためです。
- 高速ロールアウト: このロールアウトでは、すべてのゾーンとリージョンにわたるすべてのターゲット VM に拡張機能がすぐにデプロイされます。このアプローチは、非本番環境で拡張機能やパッチを迅速にデプロイする必要がある場合に便利です。
カスタム ロールアウト プランを定義して、ゾーンまたはリージョンに基づくデプロイのウェーブと、ウェーブ間の待機時間を指定することもできます。詳細については、rolloutPlans.insert メソッドをご覧ください。
ロールアウトの競合の動作
グローバル拡張機能ポリシーを作成または更新するときに、次の状況で競合が発生することがあります。
- グローバル ポリシーを作成する場合: グローバル ポリシーと競合するゾーンポリシーがゾーンにすでに存在する場合。
- グローバル ポリシーを更新する場合: 既存のゾーンポリシーがグローバル ポリシーのロールアウトとは別に変更された場合(ゾーン API 呼び出しを使用するなど)。
このような競合を回避するために、ロールアウトの競合動作を指定できます。これにより、ロールアウト中にグローバル ポリシーが競合するゾーンポリシーを上書きするかどうかを決定できます。次のいずれかの動作を指定できます。
- 上書きしない(デフォルト): 競合する動作を指定しない場合、グローバル ポリシーのロールアウトは競合するゾーンポリシーを上書きしません。そのゾーンでは、ゾーンポリシーの構成が優先されます。
- 上書き: 競合する動作を
overwriteに設定すると、グローバル ポリシーは競合するゾーン ポリシーを上書きし、グローバル ポリシーの構成がそのゾーンに適用されます。
詳細については、globalVmExtensionPolicies.insert メソッドの conflictBehavior パラメータをご覧ください。
ロールアウトを再試行する
グローバル拡張機能ポリシーを更新または削除すると、VM Extension Manager は新しいロールアウトを開始し、ロールアウト計画に従って変更を適用します。ロールアウトが中断された場合や、新しいゾーンが追加された場合は、同じポリシーの新しいロールアウトを開始してオペレーションを再試行できます。
更新ポリシーのロールアウトを再試行する
以下に、更新ポリシーのロールアウトを再試行する必要があるシナリオを示します。
- 新しいゾーンが追加された場合: グローバル ポリシーのロールアウト後に新しい Google Cloud ゾーンが利用可能になっても、VM 拡張機能マネージャーは既存のポリシーを新しいゾーンの VM に自動的に適用しません。更新のロールアウトを再試行して、新しいゾーンの VM に拡張機能ポリシーを適用できます。
- ゾーン ポリシーの変更を元に戻す: ゾーン ポリシーが個別に変更された場合(ゾーン API 呼び出しを使用してゾーン ポリシーを変更した場合など)、
conflictBehaviorをoverwriteに設定して更新ロールアウトを再試行し、グローバル ポリシーの構成を再適用してゾーン ポリシーの変更を上書きできます。 - 中断されたロールアウト: 前回のロールアウトが完了する前に失敗した場合は、新しいロールアウトを開始して更新を再試行できます。
- 公開を加速する: 進行中の公開の進捗が遅すぎる場合は、
FAST_ROLLOUTプランまたはカスタム公開プランを使用して新しい公開を開始し、アップデート プロセスを加速できます。
詳細については、globalVmExtensionPolicies.update メソッドの retryUuid パラメータをご覧ください。
ロールアウトを再試行する場合は、再試行リクエストを識別するための Universally Unique Identifier(UUID)を指定する必要があります。UUID ジェネレータを使用して作成できます。UUID は 32 文字の 16 進数形式(例: a1a2a3a4-b1b2-c1c2-d1d2-d3d4d5d6d7d8)を使用する必要があります。
削除ポリシーのロールアウトを再試行する
次のリストは、ポリシーを削除するためにロールアウトを再試行する必要があるシナリオを示しています。
- 中断されたロールアウト: ポリシーを削除する以前のロールアウトが中断されたか、正常に完了しなかった場合は、新しいロールアウトを開始して削除オペレーションを再試行できます。
- ロールアウトを加速する: 進行中の削除ロールアウトの進行が遅すぎる場合は、
FAST_ROLLOUTプランまたはカスタム ロールアウト プランを使用して新しいロールアウトを開始し、削除プロセスを加速できます。
詳細については、globalVmExtensionPolicies.delete メソッドの retryUuid パラメータをご覧ください。
次のステップ
拡張機能の管理について詳しくは、以下のリソースをご覧ください。