Устранение ошибки VMExtensionProvisioningTimeout

В этой статье рассказывается, как определить и устранить ошибку VMExtensionProvisioningTimeout, возникающую при попытке создать и развернуть кластер службы Microsoft Azure Kubernetes (AKS).

Необходимые условия

  • Azure CLI версии 2.28.0 или более поздней версии. Если Azure CLI уже установлен, можно найти номер версии, выполнив команду az --version.

Симптомы

При попытке создать кластер AKS с помощью Azure CLI вы получите ошибку VMExtensionProvisioningTimeout с текстом, как показано в следующем примере:

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

Вы также можете просмотреть сведения об ошибке на портале Azure.

Причина

Несколько различных проблем могут вызвать класс ошибок VMExtensionProvisioningError. Однако действия по устранению неполадок одинаковы для всех проблем. Возможные причины:

  • Расширение пользовательского скрипта, которое настраивает виртуальные машины (VMs), не может установить подключение к конечной точке для загрузки двоичных файлов Kubernetes.

  • Расширение пользовательского скрипта, которое подготавливает виртуальные машины, не может установить подключение к конечной точке, используемой для загрузки двоичных файлов CNI.

  • Расширение пользовательского скрипта, которое подготавливает виртуальные машины, не может установить требуемое исходящее подключение для получения пакетов.

  • Кластер не может определить необходимый адрес системы доменных имен (DNS) для корректной конфигурации узла.

  • Расширение пользовательского скрипта, которое подготавливает виртуальные машины, достигло тайм-аута при выполнении обновления системы управления пакетами (например, apt-get в случае, если пул узлов использует Linux).

Решение

Выполните следующие действия:

  1. Если фильтрация исходящего трафика настроена в кластере (например, настраиваемые пользовательские маршруты), ознакомьтесь с разделом "Ограничение сетевого трафика с помощью брандмауэра Azure в службе Azure Kubernetes(AKS)и правила исходящего трафика и полное доменное имя для кластеров AKS , чтобы просмотреть необходимые предварительные требования и убедиться, что настройка соответствует предварительным требованиям.

  2. На DNS-серверах и брандмауэре проверьте, что ничего не блокирует разрешение полного доменного имени кластера (FQDN).

  3. Так как настраиваемый DNS-сервер может быть настроен неправильно, ознакомьтесь со следующими статьями, если разрешение FQDN продолжает блокироваться:

Дополнительные сведения