Solucionar problemas do código de erro OutboundConnFailVMExtensionError (50)
Este artigo descreve como identificar e resolver o OutboundConnFailVMExtensionError
erro (também conhecido como código ERR_OUTBOUND_CONN_FAIL
de erro, erro número 50) que pode ocorrer se você tentar iniciar ou criar e implantar um cluster do AKS (Serviço de Kubernetes do Microsoft Azure).
Pré-requisitos
A ferramenta URL do cliente (cURL)
Sintomas
Quando você tentar iniciar ou criar um cluster do AKS, a seguinte mensagem de erro é exibida:
Não é possível estabelecer uma conexão de saída dos agentes, consulte https://aka.ms/aks-required-ports-and-addresses para obter mais informações.
Detalhes: Code="VMExtensionProvisioningError"
Message="VM relatou uma falha ao processar a extensão 'vmssCSE'.
Mensagem de erro: "Falha na ativação: falha ao executar o comando: comando encerrado com status de saída=50\n[stdout]\n\n[stderr]\nnc: falha na conexão com a porta 443 (tcp) do mcr.microsoft.com: Tempo limite da conexão\nComando encerrado com status diferente de zero
Detalhes do erro: "vmssCSE error messages: {vmssCSE exit status=50, output=pt/apt.conf.d/95proxy...}
Causa
A extensão de script personalizado que baixa os componentes necessários para provisionar os nós não pôde estabelecer a conectividade de saída necessária para obter pacotes. Para clusters públicos, os nós tentam se comunicar com o ponto de extremidade do MCR (Registro de Contêiner da Microsoft) (mcr.microsoft.com
) na porta 443.
Existem muitas razões pelas quais o tráfego pode ser bloqueado. Em qualquer uma dessas situações, a melhor maneira de testar a conectividade é usar o protocolo Secure Shell (SSH) para se conectar ao nó. Para fazer a conexão, siga as instruções em Conectar-se aos nós de cluster do AKS (Serviço de Kubernetes do Azure) para manutenção ou solução de problemas. Em seguida, teste a conectividade no cluster seguindo estas etapas:
Depois de se conectar ao nó, execute os
nc
comandos edig
:nc -vz mcr.microsoft.com 443 dig mcr.microsoft.com 443
Observação
Se você não puder acessar o nó por meio do SSH, poderá testar a conectividade de saída executando o comando az vmss run-command invoke na instância do Conjunto de Dimensionamento de Máquinas Virtuais:
# 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"
Se você tentar criar um cluster do AKS usando um proxy HTTP, execute os
nc
comandos ,curl
e depoisdig
de se conectar ao nó:# 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
Observação
Se você não puder acessar o nó por meio do SSH, poderá testar a conectividade de saída executando o
az vmss run-command invoke
comando na instância do Conjunto de Dimensionamento de Máquinas Virtuais:# 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"
Solução
A tabela a seguir lista os motivos específicos pelos quais o tráfego pode ser bloqueado e a solução correspondente para cada motivo:
Problema | Solução |
---|---|
O tráfego é bloqueado por regras de firewall, um servidor proxy ou NSG (Grupo de Segurança de Rede) | Esse problema ocorre quando as portas necessárias do AKS ou os FQDNs (Nomes de Domínio Totalmente Qualificados) são bloqueados por um firewall, servidor proxy ou NSG. Verifique se essas portas e FQDNs são permitidos. Para determinar o que está bloqueado, verifique a conectividade fornecida na seção Causa anterior. Para obter mais informações sobre as portas e FQDNs necessários do AKS, consulte Rede de saída e regras de FQDN para clusters do AKS (Serviço de Kubernetes do Azure). |
O registro AAAA (IPv6) está bloqueado no firewall | No firewall, verifique se não existe nada que impeça a resolução do ponto de extremidade no DNS do Azure. |
O cluster privado não pode resolver recursos internos do Azure | Em clusters privados, o endereço IP DNS do Azure (168.63.129.16 ) deve ser adicionado como um servidor DNS upstream se o DNS personalizado for usado. Verifique se o endereço está definido em seus servidores DNS. Para obter mais informações, consulte Criar um cluster AKS privado e O que é o endereço IP 168.63.129.16?. |
Mais informações
Aviso de isenção de responsabilidade para contatos de terceiros
A Microsoft fornece informações de contato de terceiros para ajudá-lo a encontrar informações adicionais sobre esse tópico. Essas informações de contato podem ser alteradas sem aviso prévio. A Microsoft não garante a precisão das informações de contato de terceiros.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.