Solucionar problemas de conexões com pontos de extremidade fora da rede virtual

Este artigo discute como solucionar problemas de conexões com pontos de extremidade fora da rede virtual (ou seja, por meio da Internet pública) de um cluster do Microsoft Serviço de Kubernetes do Azure (AKS).

Pré-requisitos

Lista de verificação de solução de problemas

Etapa 1: Fazer solução de problemas básica

Certifique-se de que você pode se conectar a pontos de extremidade públicos na Internet. Para obter instruções, consulte Solução de problemas básica de conexões de cluster aks de saída.

Etapa 2: determinar o tipo de saída para o cluster do AKS

Para identificar o tipo de saída do cluster do AKS, execute o comando az aks show :

az aks show --resource-group <resource_group> --name <cluster_name> --query "networkProfile.outboundType"

Se o tipo de saída for loadBalancer, verifique se a tabela de rotas associada aos nós do AKS tem a rota padrão para a Internet. Os detalhes são mostrados na tabela a seguir.

Origem Prefixos de endereço Próximo tipo de salto
Padrão 0.0.0.0/0 Internet

Se o tipo de saída for userDefinedRouting, verifique se as seguintes condições serão atendidas:

  • O dispositivo de saída (firewall ou proxy) é acessível.

  • O dispositivo de saída permite o tráfego de saída necessário do cluster.

    Para obter a lista de FQDNs permitidos para o cluster do AKS, execute o comando de lista az aks egress-endpoints :

    az aks egress-endpoints list --resource-group <resource_group> --name <cluster_name>
    

Se o tipo de saída for managedNATGateway, marcar se a sub-rede AKS está associada ao gateway NAT executando o comando az network nat gateway show:

az network nat gateway show --resource-group <resource_group> --name <nat_gateway_name> --query "subnets[].id"

Para obter mais informações sobre como usar um gateway nat junto com o AKS, consulte Gateway nat gerenciado.

Etapa 3: examinar a saída cURL quando você se conectar ao cluster

Os códigos de resposta cURL podem ajudá-lo a identificar o tipo de problema. Depois que o código de resposta ficar disponível, tente entender melhor como o problema se comporta. Para obter mais informações sobre os códigos http status e o comportamento subjacente do problema, consulte a tabela a seguir.

Fonte de informações Link
Autoridade de Números Atribuídos à Internet (IANA) Protocolo de Transferência de Hipertexto (HTTP) status registro de código
Mozilla Códigos de status de resposta HTTP
Wikipédia Lista de códigos de status HTTP

Os seguintes códigos HTTP status podem indicar os problemas listados.

Código de status de HTTP Problema Exemplo
4xx
  1. Um problema afeta a solicitação do cliente.
  2. Existe um bloqueador de rede entre o cliente e o servidor.
  1. A página solicitada não existe ou o cliente não tem permissão para acessar a página.
  2. O tráfego está sendo bloqueado por um grupo de segurança de rede ou um firewall.
5xx Um problema afeta o servidor. O aplicativo está desligado ou um gateway não está funcionando.

Etapa 4: determinar o que acontece se o tráfego de saída geralmente viaja por um dispositivo virtual, mas você o ignora em vez disso

Para testes rápidos para determinar se o dispositivo de saída (dispositivo virtual) causa o problema, você pode permitir temporariamente que todo o tráfego passe pela Internet. Para configurar essa configuração, você pode alterar o endereço IP padrão e a rota de porta por meio do 0.0.0.0/0 dispositivo virtual para passar pela Internet.

O problema é intermitente?

Você pode ter problemas de saída intermitentes por muitos motivos. Para solucionar problemas de conexão de saída intermitente, experimente as seguintes verificações:

O pod ou o nó estão esgotados nos recursos?

Execute o seguinte código para marcar como os recursos são usados:

kubectl top pods
kubectl top nodes

O disco do sistema operacional é muito usado?

Para marcar se o disco do sistema operacional é usado fortemente, siga estas etapas:

  1. No portal do Azure, pesquise e selecione Conjuntos de dimensionamento de máquinas virtuais.

  2. Na lista de conjuntos de escala, selecione o conjunto de dimensionamento usado para o cluster do AKS.

  3. No painel de navegação do conjunto de dimensionamento, vá para a seção Monitoramento e selecione Métricas.

  4. Exiba as métricas de disco para o conjunto de dimensionamento da seção Métricas procurando os campos a seguir.

    Campo Valor
    Escopo Nome do VMSS
    Namespace de Métricas Host de Máquina Virtual
    Métrica Métrica do sistema operacional e do disco de dados

Para obter mais informações sobre métricas, consulte métricas de Disco e Disco de Dados do sistema operacional.

Para exibir recomendações do AKS sobre a utilização do disco, siga estas etapas:

  1. No portal do Azure, pesquise e selecione Serviços do Kubernetes.

  2. Na lista de serviços do Kubernetes, selecione o nome do cluster do AKS.

  3. No painel de navegação de cluster do AKS, vá para a seção Monitoramento e selecione Recomendações do Assistente.

  4. Examine as recomendações listadas sobre o uso do disco.

Se o disco do sistema operacional for usado fortemente, considere usar os seguintes remédios:

Se esses recursos não resolve o problema, analise o processo que faz operações pesadas de leitura/gravação no disco. Em seguida, marcar se você pode mover as ações para um disco de dados em vez do disco do sistema operacional.

A porta de tradução de endereço de rede de origem está esgotada?

Se os aplicativos estiverem fazendo muitas conexões de saída, eles poderão esgotar o número de portas disponíveis no endereço IP do dispositivo de saída. Siga o standard load balancer diagnóstico com métricas, alertas e integridade de recursos para monitorar o uso e a alocação da porta SNAT (conversão de endereço de rede de origem) do balanceador de carga existente. Monitore para verificar ou determinar o risco de esgotamento da porta SNAT.

Você está atingindo ou excedendo o número máximo de portas SNAT alocadas? Nesse caso, você pode marcar seu aplicativo para determinar se ele está reutilizando conexões existentes. Para obter mais informações, consulte Projetar seus aplicativos para usar conexões com eficiência.

Se você achar que o aplicativo está configurado corretamente e precisar de mais portas SNAT do que o número padrão de portas alocadas, siga estas etapas:

  1. Aumente o número de IPs públicos no dispositivo de saída. Se o dispositivo de saída for o balanceador de carga, você poderá aumentar o número de endereços IP públicos no balanceador de carga.

  2. Aumente as portas por nó para os nós de trabalho do AKS.

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.