自動修復ポリシーが有効になっている場合でも、Azure Virtual Machine Scale Set インスタンスは修復されません
Azure VMSS インスタンスは "異常" 状態のままであり、自動修復ポリシーが有効になっている場合でも修復されません。 この記事では、この問題の考えられる原因と対応する解決策について説明します。
- 自動修復ポリシーがスケール セットで正しく有効になっていません。
- 正常性監視がスケール セットで正しく構成されていません。
- インスタンスは、プロビジョニングエラーが原因で異常とマークされます。
- 自動修復は、失敗した修復が多すぎるため、スケール セットで中断されています。
- インスタンスは猶予期間にあります。
スケール セットで自動修復ポリシーが正しく有効になっていない
VMSS が サービスの状態を表示して自動修復にオプトインされていることを確認します。
プロパティの下で orchestrationServices
、自動修復の が serviceState
の場合、 Running
VMSS は自動修復にオプトインされます。
serviceState
が NotRunning
または の自動修復ポリシーが プロパティの下にorchestrationServices
表示されない場合は、スケール セットで自動修復ポリシーを有効にする必要があります。 詳細については、「 既存のスケール セットを更新するときに自動修復ポリシーを有効にする」を参照してください。
が の serviceState
場合は Suspended
、 失敗した修復が多すぎるため、スケール セットで自動修復が中断されました。
スケール セットで正常性監視が正しく構成されていない
スケール セット内のすべてのインスタンスが "異常" として表示される場合は、セットアップ中に正常性監視プローブが正しく構成されていないことを示している可能性があります。 アプリケーションが、構成されたエンドポイントに対して予想される HTTP/HTTPS/TCP 応答を出力していることを確認します。
"正常" 状態を実現するために、アプリケーション正常性拡張機能プローブまたはロード バランサーの正常性プローブでは、少なくとも 2xx HTTP(S) 応答または構成されたエンドポイントでのアプリケーションからの正常な TCP ハンドシェイクが必要です。 予想される応答が受信されない場合は、"異常" 状態が報告されます。 適切な正常性シグナルが、アプリケーションによって指定されたエンドポイントに出力されていることを確認します。
ロード バランサーの正常性プローブに対して予想される TCP/HTTP(S) 応答の詳細については、「カスタム プローブのLoad Balancer」を参照してください。
アプリケーション正常性拡張プローブに対して予想される TCP/HTTP(S) 応答の詳細については、「 自動インスタンス修復を使用するための要件」の「正常性状態を提供するようにエンドポイントを構成する」セクションを参照してください。
プロビジョニングエラーが原因でインスタンスが異常としてマークされる
VMSS の API バージョン 2019-12-01 以降で インスタンス ビューを取得 して、 プロパティからインスタンス statusesSummary
のプロビジョニング状態を virtualMachine
表示します。
REST API
GET '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2019-12-01'
"virtualMachine": {
"statusesSummary": [
{
"code": "ProvisioningState/succeeded",
"count": 2
}
]
}
の下statusesSummary
にProvisioningState/failed
コードがある場合は、失敗したインスタンスを削除し、新しいインスタンスをスケール セットに追加します。
現在、インスタンスの修復では、プロビジョニングエラーが原因で仮想マシンが "異常" とマークされるシナリオはサポートされていません。
スケール セットから失敗したインスタンスを削除するには、「スケール セット から VM を削除する」を参照してください。
スケール セットに新しいインスタンスを追加するには、「スケール セット の容量を変更する」を参照してください。
自動修復は、失敗した修復が多すぎるため、スケール セットで中断されました
繰り返し修復を試みた後もアプリケーションが "異常" 信号を出力し続ける場合、プラットフォームは最終的に自動修復の を に変更 serviceState
することで、安全対策としてインスタンスの修復を Suspended
中断します。
serviceState
自動修復ポリシーの を確認します。 これを行うには、「 自動インスタンス修復ポリシーのサービス状態の表示と更新」を参照してください。
が のserviceState
場合はSuspended
、「自動インスタンス修復ポリシーのサービス状態をserviceState
表示および更新する」の API とコマンドレットの例を使用setOrchestrationServiceState
して、 にRunning
戻して自動修復を再開します。
インスタンスが猶予期間にある
上記の原因のいずれも問題に該当しない場合、インスタンスはその猶予期間にある可能性があります。
猶予期間は、自動修復がインスタンスの状態変更後に修復を実行するまで待機する時間であり、早期または偶発的な修復を回避するのに役立ちます。 修復アクションは、インスタンスの猶予期間が完了すると実行されます。 自動修復の猶予期間設定の詳細については、「 猶予期間」を参照してください。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。