Share via


即使已啟用自動修復原則,Azure 虛擬機擴展集實例也不會修復

Azure VMSS 實例會維持「狀況不良」狀態,即使已啟用自動修復原則,也不會修復。 本文提供此問題的可能原因和對應的解決方案:

擴展集中未正確啟用自動修復原則

藉由檢視 VMSS 的服務狀態,確認您的 VMSS 已選擇自動修復。

在屬性下 orchestrationServices ,如果 serviceState 自動修復的 是 Running,則 VMSS 會選擇自動修復。

如果 是 serviceStateNotRunning 或自動修復原則未顯示在 屬性下 orchestrationServices 方,您必須在擴展集中啟用自動修復原則。 如需詳細資訊,請參閱 更新現有擴展集時啟用自動修復原則

如果 為 serviceStateSuspended,請移至擴展 集中因為太多失敗的修復而暫停自動修復

擴展集中未正確設定健康情況監視

如果擴展集中的所有實例都顯示為「情況不良」,可能是您的健康情況監視探查在安裝期間未正確設定的徵兆。 請確定您的應用程式會對設定的端點發出預期的 HTTP/HTTPS/TCP 回應。

為了達到「狀況良好」狀態,應用程式健康情況擴充功能探查或負載平衡器健康情況探查至少需要 2xx HTTP (S) 回應,或從已設定端點的應用程式成功進行 TCP 交握。 如果未收到預期的回應,則會回報「狀況不良」狀態。 請確定應用程式已將正確的健康情況訊號發出至提供的端點。

如需負載平衡器健康情況探查之預期 TCP/HTTP (S) 回應的詳細資訊,請參閱自定義探查 Load Balancer

如需應用程式健康情況延伸模組探查的預期 TCP/HTTP (S) 回應的詳細資訊,請參閱 使用自動實例修復的需求中的一節。

實例因為布建失敗而標示為狀況不良

使用 API 版本 2019-12-01 或更新版本取得實例檢視,讓 VMSS 從 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

若要將新的實例新增至擴展集,請參閱 變更擴展集的容量

擴展集中的自動修復已暫停,因為修復失敗太多

如果您的應用程式在重複的修復嘗試之後繼續發出「狀況不良」訊號,平臺最後會將 自動修復的 Suspended變更serviceState為 ,以安全措施暫停實例修復。

serviceState確認自動修復原則的 。 若要這樣做,請參 閱檢視和更新自動實例修復原則的服務狀態

如果 為 serviceStateSuspended,請使用setOrchestrationServiceState檢視和更新自動實例修復serviceState原則的服務狀態中的 API 和 Cmdlet 範例,將更新回 ,以Running繼續自動修復。

實例處於寬限期

如果上述任何原因都不適用於問題,則實例可能處於寬限期。

寬限期是在執行修復之前,自動修復在實例上的任何狀態變更之後等待的時間量,有助於避免任何提前或意外修復。 修復動作應該會在實例的寬限期完成後發生。 如需自動修復寬限期設定的詳細資訊,請參閱 寬限期

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群