Udostępnij przez


Rozwiązywanie problemów z błędem VMExtensionProvisioningTimeout

W tym artykule omówiono sposób identyfikowania i rozwiązywania błędu występującego VMExtensionProvisioningTimeout podczas próby utworzenia i wdrożenia klastra usługi Microsoft Azure Kubernetes Service (AKS).

Wymagania wstępne

  • Interfejs wiersza polecenia platformy Azure w wersji 2.28.0 lub nowszej. Jeśli interfejs wiersza polecenia platformy Azure jest już zainstalowany, możesz znaleźć numer wersji, uruchamiając polecenie az --version.

Symptomy

Podczas próby utworzenia klastra usługi AKS przy użyciu interfejsu wiersza polecenia platformy Azure zostanie wyświetlony błąd "VMExtensionProvisioningTimeout" z tekstem, jak w poniższym przykładzie:

Failed to reconcile agent pool agentpool0: err: VMSSAgentPoolReconciler retry failed:
Category: InternalError;
SubCode: VMExtensionProvisioningTimeout;
Dependency: Microsoft.Compute/VirtualMachineScaleSet;
OrginalError:
Code="VMExtensionProvisioningTimeout"
Message="Provisioning of VM extension vmssCSE has timed out. Extension provisioning has taken too long to complete. The extension last reported \"Plugin enabled\".\r\n\r\nMore information on troubleshooting is available at <https://aka.ms/VMExtensionCSELinuxTroubleshoot>";
AKSTeam: NodeProvisioning,
Retriable: true

Szczegóły błędu można również wyświetlić w witrynie Azure Portal.

Przyczyna

Różne problemy mogą powodować błędy z klasy "VMExtensionProvisioningError". Jednak kroki rozwiązywania problemów są takie same dla wszystkich problemów. Możliwe przyczyny są następujące:

  • Rozszerzenie skryptu niestandardowego, które konfiguruje maszyny wirtualne, nie może nawiązać połączenia z punktem końcowym używanym do pobierania binariów Kubernetes.

  • Rozszerzenie skryptu niestandardowego, które konfiguruje maszyny wirtualne, nie może nawiązać połączenia do punktu końcowego używanego do pobierania plików binarnych CNI.

  • Rozszerzenie niestandardowego skryptu, które konfiguruje maszyny wirtualne, nie może ustanowić wymaganego połączenia wychodzącego w celu uzyskania pakietów.

  • Klaster nie może rozpoznać niezbędnego adresu systemu nazw domen (DNS), aby poprawnie aprowizować węzeł.

  • Rozszerzenie niestandardowego skryptu, które konfiguruje maszyny wirtualne, osiągnęło limit czasu podczas wykonywania aktualizacji zarządzania pakietami (na przykład apt-get, jeśli pula węzłów korzysta z systemu Linux).

Rozwiązanie

Wykonaj te kroki:

  1. Jeśli filtrowanie ruchu wychodzącego jest skonfigurowane w klastrze (na przykład niestandardowe trasy zdefiniowane przez użytkownika), zobacz Ograniczanie ruchu sieciowego za pomocą usługi Azure Firewall w usłudze Azure Kubernetes Service (AKS) oraz reguł sieci wychodzących i nazw FQDN dla klastrów usługi AKS w celu wyświetlenia niezbędnych wymagań wstępnych i upewnij się, że konfiguracja spełnia wymagania wstępne.

  2. Upewnij się, że na serwerach DNS i zaporze nic nie blokuje rozpoznawania w pełni kwalifikowanej nazwy domeny klastra (FQDN).

  3. Ponieważ niestandardowy serwer DNS może być niepoprawnie skonfigurowany, zapoznaj się z następującymi artykułami, jeśli rozwiązywanie nazw FQDN będzie nadal blokowane.

Więcej informacji