Solución de problemas del código de error OutboundConnFailVMExtensionError (50)
En este artículo se describe cómo identificar y resolver el OutboundConnFailVMExtensionError
error (también conocido como código ERR_OUTBOUND_CONN_FAIL
de error , número de error 50) que puede producirse si intenta iniciar o crear e implementar un clúster de Microsoft Azure Kubernetes Service (AKS).
Requisitos previos
La herramienta Dirección URL de cliente (cURL)
Síntomas
Al intentar iniciar o crear un un clúster de AKS, recibirá el mensaje de error siguiente:
No se puede establecer la conexión saliente de los agentes, consulte https://aka.ms/aks-required-ports-and-addresses para obtener más información.
Detalles: Code="VMExtensionProvisioningError"
Message="VM ha notificado un error al procesar la extensión "vmssCSE".
Mensaje de error: "Error al habilitar: no se pudo ejecutar el comando: el comando finalizó con el estado de salida=50\n[stdout]\n\n[stderr]\nnc: error al conectarse al puerto 443 (tcp) mcr.microsoft.com: Error en el tiempo de espera de la conexión\nComando salió con un estado distinto de cero.
Detalles del error: "mensajes de error de vmssCSE: {vmssCSE exit status=50, output=pt/apt.conf.d/95proxy...}
Causa
La extensión de script personalizado que descarga los componentes necesarios para aprovisionar los nodos no pudo establecer la conectividad saliente necesaria para obtener paquetes. En el caso de los clústeres públicos, los nodos intentan comunicarse con el punto de conexión de Microsoft Container Registry (mcr.microsoft.com
MCR) en el puerto 443.
Hay muchas razones por las que se puede bloquear el tráfico. En cualquiera de estas situaciones, la mejor manera de probar la conectividad es usar el protocolo Secure Shell (SSH) para conectarse al nodo. Para establecer la conexión, siga las instrucciones de Conexión a nodos de clúster de Azure Kubernetes Service (AKS) para mantenimiento o solución de problemas. A continuación, pruebe la conectividad en el clúster siguiendo estos pasos:
Después de conectarse al nodo, ejecute los
nc
comandos ydig
:nc -vz mcr.microsoft.com 443 dig mcr.microsoft.com 443
Nota:
Si no puede acceder al nodo a través de SSH, puede probar la conectividad saliente ejecutando el comando az vmss run-command invoke en la instancia del conjunto de escalado de máquinas virtuales:
# 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"
Si intenta crear un clúster de AKS mediante un proxy HTTP, ejecute los
nc
comandos ,curl
ydig
después de conectarse al nodo:# 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
Nota:
Si no puede acceder al nodo a través de SSH, puede probar la conectividad saliente ejecutando el
az vmss run-command invoke
comando en la instancia del conjunto de escalado de máquinas virtuales:# 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"
Solución
En la tabla siguiente se enumeran los motivos específicos por los que se puede bloquear el tráfico y la solución correspondiente por cada motivo:
Problema | Solución |
---|---|
Las reglas de firewall bloquean el tráfico, un servidor proxy o un grupo de seguridad de red (NSG) | Este problema se produce cuando un firewall, un servidor proxy o un grupo de seguridad de red bloquean los puertos necesarios de AKS o nombres de dominio completos (FQDN). Asegúrese de que se permiten estos puertos y FQDN. Para determinar lo que está bloqueado, compruebe la conectividad proporcionada en la sección Causa anterior. Para más información sobre los puertos y FQDN necesarios de AKS, consulte Reglas de FQDN y red saliente para clústeres de Azure Kubernetes Service (AKS). |
El registro AAAA (IPv6) está bloqueado en el firewall. | En el firewall, compruebe que no existe nada que impida que el punto de conexión se resuelva en Azure DNS. |
El clúster privado no puede resolver recursos internos de Azure | En clústeres privados, la dirección IP de Azure DNS (168.63.129.16 ) debe agregarse como un servidor DNS ascendente si se usa DNS personalizado. Compruebe que la dirección está establecida en los servidores DNS. Para obtener más información, consulte Creación de un clúster de AKS privado y ¿Qué es la dirección IP 168.63.129.16?. |
Más información
Aviso de declinación de responsabilidades sobre la información de contacto de terceros
Microsoft proporciona información de contacto de otros proveedores para ayudarle a encontrar información adicional sobre este tema. Esta información de contacto puede cambiar sin previo aviso. Microsoft no garantiza la precisión de esta información de contacto de terceros.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.