Virtual Machine Scale Sets でローリング アップグレードを構成する

Note

ローリング アップグレードは、均一オーケストレーションを使用する Virtual Machine Scale Sets でのみ使用できます。

ローリング アップグレード ポリシーは、Virtual Machine Scale Set 内のインスタンスに更新プログラムを適用する最も安全な方法です。 更新をバッチで実行すると、スケール セットで、トラフィックを受け入れるために使用できる設定された数のインスタンスが確実に維持されます。つまり、変更を加えるためにワークロード全体を停止する必要がありません。

ローリング アップグレード ポリシーは、運用ワークロードに最適です。

要件

  • ローリング アップグレード ポリシーを使用する場合、スケール セットでアプリケーションの正常性を監視するには、正常性プローブが設定されているか、アプリケーション正常性拡張機能を使用する必要があります。

  • MaxSurge を使用したローリング アップグレードを使用する場合、最新のスケール セット モデルを使用して新しい VM が作成され、古いスケール セットを使用する VM に置き換わります。 この新しく作成された VM には、新しいインスタンス ID と IP アドレスが割り当てられます。 MaxSurge を有効にする前に、この新しい VM に対応できる十分なクォータとアドレス スペースがサブネット内にあることを確認します。 クォータと制限の詳細については、Azure サブスクリプションとサービスの制限に関する記事を参照してください。

重要

MaxSurge は現在、Virtual Machine Scale Sets ではプレビュー段階です。 このプレビュー機能を使用するには、Azure Cloud Shell を使用してプロバイダー機能を登録します。

Register-AzProviderFeature -FeatureName MaxSurgeRollingUpgrade -ProviderNamespace Microsoft.Compute

プレビュー版は、追加使用条件に同意することを条件に使用できます。 このような機能の一部の側面は、一般公開 (GA) 前に変更される可能性があります。

概念

設定 説明
アップグレード ポリシー モード Virtual Machine Scale Sets で使用できるアップグレード ポリシー モードは、自動手動ローリングです。
ローリング アップグレードのバッチ サイズの割合 (%) スケール セット内のインスタンスのうち一度にアップグレードするインスタンスの合計数を指定します。

例: スケール セット内に 10 個のインスタンスがある場合、バッチ サイズを 20% にすると、アップグレード バッチにはそれぞれ 2 つのインスタンスが含まれます。
バッチ間の一時停止時間 (秒) バッチのアップグレード間でスケール セットが待機する時間を指定します。

例: 10 秒の一時停止時間は、バッチが正常に完了した後、スケール セットは 10 秒待ってから次のバッチに進むことを意味します。
異常インスタンスの最大数の割合 (%) ローリング アップグレード前およびローリング アップグレード中に許容される、異常としてマークされたインスタンスの合計数を指定します。

例: 異常インスタンスの最大数の割合 (%) として 20 を指定すると、スケール セット内に 10 個のインスタンスがある場合、異常として報告されるインスタンスがスケール セット全体で 2 つを超えたとき、ローリング アップグレードが停止することを意味します。
異常アップグレードの最大の割合 (%) アップグレード後に許容される、異常としてマークされたインスタンスの合計数を指定します。

例: 異常アップグレードの最大の割合 (%) として 20 を指定すると、スケール セット内に 10 個のインスタンスがあり、アップグレード後に異常として報告されるインスタンスがスケール セット全体で 2 つを超える場合、ローリング アップグレードがキャンセルされることを意味します。

異常アップグレードの最大の割合 (%) を指定すると、スケール セット全体にロールアウトする前に、スケール セットで不安定または不適切な更新を検出できるため、これは重要な設定です。
異常インスタンスを優先する 正常としてマークされたインスタンスをアップグレードする前に、異常としてマークされたインスタンスをアップグレードするようにスケール セットに指示します。

例: ローリング アップグレードの開始時にスケール セット内の一部のインスタンスが失敗または異常として表示される場合、スケール セットによってそれらのインスタンスが最初に更新されます。
ゾーン間アップグレードを有効にする バッチを決定するときに、スケール セットが可用性ゾーンの境界を無視できるようにします。
MaxSurge MaxSurge は現在、Virtual Machine Scale Sets の均一オーケストレーションではプレビュー段階です。 このプレビュー機能を使用するには、Register-AzProviderFeature -FeatureName MaxSurgeRollingUpgrade -ProviderNamespace Microsoft.Compute を使用してプロバイダー機能を登録します。

MaxSurge を有効にすると、最新のスケール モデルを使用して新しいインスタンスがバッチで作成されます。 新しいインスタンスのバッチが正常に作成され、正常としてマークされると、そのインスタンスでのトラフィックの取得が開始されます。 この後、スケール セットによって、古いスケール セット モデルと一致するインスタンスがバッチで削除されます。 これは、すべてのインスタンスが最新の状態になるまで続けられます。 MaxSurge を使用したローリング アップグレードは、アップグレード イベント中のサービスのアップタイムを向上するのに役立ちます。

MaxSurge を無効にすると、スケール セット内の既存のインスタンスは、アップグレードするバッチでダウンします。 アップグレードされたバッチが完了すると、インスタンスでのトラフィックの取得が再開され、次のバッチが開始されます。 これは、すべてのインスタンスが最新の状態になるまで続けられます。

ローリング アップグレード ポリシーの設定または更新

ローリング アップグレード ポリシーは、スケール セットの作成時に構成できます。 ローリング アップグレード ポリシーでは、アプリケーションの正常性を正常に監視する必要があり、アップグレードの完了方法を決定する特定の設定があるため、最初に手動アップグレード ポリシーを使用してスケール セットを作成することをお勧めします。 アプリケーションの正常性が正常に報告されていることを確認したら、アップグレード ポリシーを手動からローリングに更新します。

アップグレード ポリシーを変更する仮想マシン スケール セットを選択します。 [設定] の下のメニューで [アップグレード ポリシー] を選択し、ドロップ ダウン メニューから、[ローリング - 一時停止を任意で指定し、アップグレードをバッチでロールアウトする]を選択します。

Azure portal でのアップグレード ポリシーの変更と MaxSurge の有効化のスクリーンショット。

ローリング アップグレードの状態を取得する

Azure portal でローリング アップグレードがトリガーされると、スケール セット リソースの上部に、ローリング アップグレードが進行中であることを通知するバナーが表示されます。 ローリング アップグレードの状態を確認するには、[詳細の表示] をクリックします。 このバナーは、すべての更新が完了すると消えます。

ローリング アップグレードが実行されているときのバナーを示すスクリーンショット。

Azure portal で表示されるローリング アップグレードの詳細を示すスクリーンショット。

さらに、アクティビティ ログでは、ロールアウトされている変更内容を正確に確認できます。 ローリング アップグレード イベントは、[仮想マシン スケール セットの作成または更新] に表示されます。 更新内容を確認するには、[変更履歴] を選択します。

アクティビティ ログに表示されるローリング アップグレードの詳細を示すスクリーンショット。

ローリング アップグレードをキャンセルする

Azure portal を使用して進行中のローリング アップグレードをキャンセルするには、スケール セットの上部にあるバナーで [詳細の表示] を選択します。 ポップアップ ウィンドウに現在の状態が表示され、下部に [アップグレードのキャンセル] オプションが表示されます。

アクティビティ ログに表示されるローリング アップグレードの詳細を示すスクリーンショット。

ローリング アップグレードを再起動する

ローリング アップグレードのキャンセルを決定した場合、またはポリシー違反が原因でアップグレードが停止した場合、スケール セット モデルの別の変更を引き起こすさらなる変更により、新しいローリング アップグレードがトリガーされます。 ローリング アップグレードを再起動する場合は、汎用モデルの更新をトリガーします。 これにより、すべてのインスタンスが最新モデルで更新されているかどうかを確認するようにスケール セットに指示されます。

ローリング アップグレードをキャンセルした後に再起動するには、スケール セットをトリガーして、スケール セット内のインスタンスが最新のスケール セット モデルで更新されているかどうかを確認する必要があります。 これを行うには、az vmss update を実行します。

az vmss update \
    --name myScaleSet \
    --resource-group myResourceGroup

次のステップ

Virtual Machine Scale Sets で手動アップグレードを実行する方法について説明します。