Устранение неполадок с кодом ошибки OutboundConnFailVMExtensionError (50)
В этой статье описывается, как определить и устранить OutboundConnFailVMExtensionError
ошибку (также известный как код ошибки, номер ERR_OUTBOUND_CONN_FAIL
ошибки 50), которая может возникнуть при попытке запустить или создать и развернуть кластер Microsoft Служба Azure Kubernetes (AKS).
Предварительные требования
Средство командной строки dig
Средство URL-адреса клиента (cURL)
Симптомы
При попытке запустить или создать кластер AKS появляется следующее сообщение об ошибке:
Не удается установить исходящее подключение от агентов, см https://aka.ms/aks-required-ports-and-addresses . дополнительные сведения.
Сведения: Code="VMExtensionProvisioningError"
Message="виртуальная машина сообщила о сбое при обработке расширения vmssCSE.
Сообщение об ошибке: "Включить сбой: не удалось выполнить команду: команда завершилась с состоянием выхода=50\n[stdout]\n\n[stderr]\nnc: подключение к порту mcr.microsoft.com 443 (tcp) завершилось сбоем подключения: время ожидания подключения\nCommand завершилось с состоянием non-zero
Сведения об ошибке: "Сообщения об ошибках vmssCSE: {vmssCSE exit status=50, output=pt/apt.conf.d/95proxy...}
Причина
Расширению пользовательских скриптов, загружающие необходимые компоненты для подготовки узлов, не удалось установить необходимое исходящее подключение для получения пакетов. Для общедоступных кластеров узлы пытаются взаимодействовать с конечной точкой Реестра контейнеров Майкрософт (mcr.microsoft.com
MCR) через порт 443.
Существует множество причин, по которым трафик может быть заблокирован. В любой из этих ситуаций лучший способ проверки подключения — использовать протокол Secure Shell (SSH) для подключения к узлу. Чтобы сделать подключение, следуйте инструкциям в разделе "Подключение к узлам кластера Служба Azure Kubernetes (AKS) для обслуживания или устранения неполадок. Затем проверьте подключение в кластере, выполнив следующие действия.
После подключения к узлу выполните
nc
dig
следующие команды:nc -vz mcr.microsoft.com 443 dig mcr.microsoft.com 443
Примечание.
Если вы не можете получить доступ к узлу через SSH, можно протестировать исходящее подключение, выполнив команду az vmss run-command invoke для экземпляра масштабируемого набора виртуальных машин:
# Get the VMSS instance IDs. az vmss list-instances --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --output table # Use an instance ID to test outbound connectivity. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "nc -vz mcr.microsoft.com 443"
Если вы пытаетесь создать кластер AKS с помощью ПРОКСИ-сервера HTTP, запустите
nc
curl
команду иdig
команды после подключения к узлу:# Test connectivity to the HTTP proxy server from the AKS node. nc -vz <http-s-proxy-address> <port> # Test traffic from the HTTP proxy server to HTTPS. curl --proxy http://<http-proxy-address>:<port>/ --head https://mcr.microsoft.com # Test traffic from the HTTPS proxy server to HTTPS. curl --proxy https://<https-proxy-address>:<port>/ --head https://mcr.microsoft.com # Test DNS functionality. dig mcr.microsoft.com 443
Примечание.
Если вы не можете получить доступ к узлу через SSH, можно проверить исходящее подключение, выполнив
az vmss run-command invoke
команду в экземпляре масштабируемого набора виртуальных машин:# Get the VMSS instance IDs. az vmss list-instances --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --output table # Use an instance ID to test connectivity from the HTTP proxy server to HTTPS. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "curl --proxy http://<http-proxy-address>:<port>/ --head https://mcr.microsoft.com" # Use an instance ID to test connectivity from the HTTPS proxy server to HTTPS. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "curl --proxy https://<https-proxy-address>:<port>/ --head https://mcr.microsoft.com" # Use an instance ID to test DNS functionality. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "dig mcr.microsoft.com 443"
Решение
В следующей таблице перечислены конкретные причины, по которым может быть заблокирован трафик, и соответствующее решение по каждой причине:
Проблема | Решение |
---|---|
Трафик блокируется правилами брандмауэра, прокси-сервером или группой безопасности сети (NSG) | Эта проблема возникает, когда необходимые порты AKS или полные доменные имена (FQDN) блокируются брандмауэром, прокси-сервером или NSG. Убедитесь, что эти порты и полные доменные имена разрешены. Чтобы определить, что заблокировано, проверьте подключение, предоставленное в предыдущем разделе причины . Дополнительные сведения о необходимых портах и полных доменных именах AKS см. в правилах исходящей сети и полного доменного имени для кластеров Служба Azure Kubernetes (AKS). |
Запись AAAA (IPv6) заблокирована на брандмауэре. | Убедитесь, что в брандмауэре нет ничего, что блокирует разрешение конечной точки в Azure DNS. |
Частный кластер не может разрешать внутренние ресурсы Azure | В частных кластерах IP-адрес Azure DNS (168.63.129.16 ) необходимо добавить в качестве вышестоящего DNS-сервера, если используется пользовательский DNS. Убедитесь, что адрес задан на DNS-серверах. Дополнительные сведения см. в разделе "Создание частного кластера AKS" и "Что такое IP-адрес 168.63.129.16?". |
Дополнительная информация
Заявление об отказе от ответственности за контактные данные сторонней организации
Корпорация Майкрософт предоставляет контактные данные сторонних производителей в целях получения дополнительных сведений по данной теме. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не гарантирует точность контактных данных сторонних производителей.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.