Compartilhar via


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_FAILde 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

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:

  1. Depois de se conectar ao nó, execute os nc comandos e dig :

    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"
    
  2. Se você tentar criar um cluster do AKS usando um proxy HTTP, execute os nccomandos , curle depois dig 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. | Edição | 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.