Błędy aprowizacji rozszerzenia maszyny wirtualnej w Virtual Machine Scale Sets

Ten artykuł zawiera wskazówki dotyczące rozwiązywania błędów VMExtensionProvisioningError, VMExtensionHandlerNonTransientError lub VMExtensionProvisioningTimeout , które pojawiają się podczas próby wdrożenia, zaktualizowania, odtworzenia, uruchomienia lub skalowania zestawu skalowania maszyn wirtualnych.

Uwaga

W kontekście Virtual Machine Scale Sets komunikaty "Maszyna wirtualna" w tych komunikatach o błędach odnoszą się do wystąpienia w określonym zestawie skalowania maszyn wirtualnych.

Symptomy

Zobaczysz błędy VMExtensionProvisioningError, VMExtensionHandlerNonTransientError lub VMExtensionProvisioningTimeout , jak w poniższych przykładach:

'statusMessage': '{\\'status\\':\\'Failed\\',\\'error\\':{\\'code\\':\\'ResourceOperationFailure\\',\\'message\\':\\'The resource operation completed with terminal provisioning state 'Failed'.\\',\\'details\\':[{\\'code\\':\\'VMExtensionProvisioningError\\',\\'message\\':\\'Multiple VM extensions failed to be provisioned on the VM. Please see the VM extension instance view for other failures.

{'status': 'Failed','error': {'code':'VMExtensionHandlerNonTransientError','message': 'The handler for VM extension type 'Microsoft.EnterpriseCloud.Monitoring.OmsAgentForLinux' has reported terminal failure for VM extension 'OmsAgentForLinux' with error message: '[ExtensionOperationError] Non-zero exit code: 10

'statusMessage': '{\\'status\\':\\'Failed\\',\\'error\\':{\\'code\\':\\'ResourceOperationFailure\\',\\'message\\':\\'The resource operation completed with terminal provisioning state 'Failed'.\\',\\'details\\':[{\\'code\\':\\'VMExtensionProvisioningTimeout\\',\\'message\\':\\'Provisioning of VM extension configure-settings has timed out. Extension provisioning has taken too long to complete.

Przyczyna

Rozszerzenie maszyny wirtualnej zawiesza się lub wystąpiło niepowodzenie w stanie aprowizacji.

Uzyskaj więcej informacji na temat błędu rozszerzenia

Aby rozpocząć rozwiązywanie tego błędu, należy najpierw określić, których rozszerzeń i wystąpień dotyczy problem. W tym celu uruchom następujące polecenie interfejsu wiersza polecenia platformy Azure:

az vmss list-instances --resource-group MyResourceGroup --name MyVmss --query "[].{instanceId:instanceId, extension:resources[].id, extProvisioningState:resources[].provisioningState}"

Dane wyjściowe tego polecenia będą wyświetlać stany aprowizacji rozszerzeń w każdym wystąpieniu. Poniższe przykładowe dane wyjściowe pokazują, jak te informacje o rozszerzeniu są pogrupowane według identyfikatora wystąpienia.

Zrzut ekranu przedstawiający dane wyjściowe z wyróżnionymi identyfikatorami wystąpień.

W każdej sekcji dedykowanej konkretnemu wystąpieniu lista "extProvisioningState" u góry zawiera stany aprowizacji rozszerzeń zainstalowanych w tym wystąpieniu. Po tej liście znajduje się lista "extension", która wyświetla nazwy rozszerzeń w tej samej odpowiedniej kolejności.

Na przykład w poniższych przykładowych danych wyjściowych pierwszy stan aprowizacji w tym wystąpieniu "Niepowodzenie" odpowiada pierwszemu rozszerzeniu "customScript". Dopasowując stany aprowizacji do wymienionych rozszerzeń, można również określić, że w tym przykładzie drugie i trzecie wymienione rozszerzenia zostały pomyślnie aprowizowane w tym samym wystąpieniu.

Zrzut ekranu przedstawiający dane wyjściowe przedstawiające stan aprowizacji i dopasowane nazwy rozszerzeń.

Próba skalowania w poziomie zestawu skalowania maszyn wirtualnych

Jeśli rozszerzenie nie powiodło się w każdym wystąpieniu, dodaj nowe wystąpienia do zestawu skalowania maszyn wirtualnych i sprawdź, czy aprowizowanie rozszerzenia zakończy się pomyślnie. Jeśli to się powiedzie, usuń wystąpienia, w których aprowizowanie rozszerzenia nie powiodło się.

Odczytywanie dzienników dotyczących wystąpień, których dotyczy problem

Aby uzyskać dalszy wgląd w przyczynę błędu, zaloguj się do wystąpień, których dotyczy problem. W zależności od systemu operacyjnego zestawu skalowania maszyn wirtualnych i rozszerzenia, których dotyczy problem, przejdź do odpowiednich dzienników i przejrzyj ramy czasowe, których dotyczy problem:

  • Windows Virtual Machine Scale Sets: C:\WindowsAzure\logs\plugins\ExtensionName\Extension.log
  • Linux Virtual Machine Scale Sets: /var/log/plugins/ExtensionName/Extension.log

Sprawdź, czy rozszerzenie zakończone niepowodzeniem działa zgodnie z najlepszymi rozwiązaniami

Jeśli rozszerzenie można dostosowywać, takie jak rozszerzenie niestandardowego skryptu (CSE) lub Desired State Configuration (DSC), sprawdź, czy postępujesz zgodnie ze wszystkimi niezbędnymi wymaganiami wstępnymi i zalecanymi najlepszymi rozwiązaniami.

Ponowne instalowanie rozszerzenia

  1. W bloku Rozszerzenia zestawu skalowania maszyn wirtualnych wybierz rozszerzenie z błędami aprowizacji.

  2. Kliknij przycisk Odinstaluj.

    Zrzut ekranu przedstawiający blok rozszerzeń z wyróżnionym przyciskiem dezinstalacji

  3. W bloku Rozszerzenia kliknij pozycję Dodaj.

  4. Wybierz i zainstaluj ponownie to samo rozszerzenie.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.