自動修復ポリシーが有効になっている場合でも、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) 応答の詳細については、「 インスタンスの自動修復を使用するためのリソース」の「正常性状態を提供するようにエンドポイントを構成する」セクションを参照してください。
プロビジョニングエラーが原因でインスタンスが異常としてマークされる
virtualMachine
プロパティからstatusesSummary
インスタンスのプロビジョニング状態を表示します。
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
されている場合は、setOrchestrationServiceState
API とコマンドレットの例を使用して、serviceState
を Running
に更新して自動修復を再開自動インスタンス修復ポリシーのサービス状態を表示および更新します。
インスタンスが猶予期間にある
上記の原因が問題に該当しない場合は、インスタンスがその猶予期間にある可能性があります。
猶予期間とは、インスタンスで状態が変化した後に自動修復が待機してから修復を実行する時間であり、早期修復や偶発的な修復を回避するのに役立ちます。 修復操作は、インスタンスの猶予期間が完了した後に実行されます。 自動修復の猶予期間設定の詳細については、「 Grace Period」を参照してください。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。