Solução de problemas de balanceadores de carga de rede de passagem externa

Neste guia, descrevemos como resolver problemas de configuração de um balanceador de carga de rede de passagem externa doGoogle Cloud . Antes de investigar os problemas, conheça as páginas a seguir.:

Resolver problemas comuns com o Network Analyzer

O Network Analyzer monitora automaticamente as configurações da rede VPC e detecta configurações incorretas e não ideais. Ele identifica falhas de rede, fornece informações sobre a causa raiz e sugere possíveis soluções. Para saber mais sobre os diferentes cenários de configuração incorreta que são detectados automaticamente pelo Network Analyzer, consulte Insights do balanceador de carga na documentação do Network Analyzer.

O Network Analyzer está disponível no console do Google Cloud como parte do Network Intelligence Center.

Acessar o Network Analyzer

Resolver problemas de configuração

Os back-ends têm modos de balanceamento incompatíveis

Ao criar um balanceador de carga, talvez você veja o erro:

Validation failed for instance group INSTANCE_GROUP:

backend services 1 and 2 point to the same instance group
but the backends have incompatible balancing_mode. Values should be the same.

Isso acontece quando você tenta usar o mesmo back-end em dois balanceadores de carga diferentes, e os back-ends não têm modos de balanceamento compatíveis.

Para ver mais informações, consulte os seguintes tópicos:

Resolver problemas gerais de conectividade

Se você não conseguir se conectar ao balanceador de carga de rede de passagem externa, verifique os seguintes problemas comuns:

  • Verifique as regras de firewall.

    • Verifique se as regras de firewall de permissão de entrada estão configuradas para permitir verificações de integridade em VMs de back-end.
    • Verifique se as regras de firewall de permissão de entrada permitem o tráfego nas VMs de back-end dos clientes.
    • Verifique se há regras de firewall relevantes para permitir que o tráfego alcance as VMs de back-end nas portas usadas pelo balanceador de carga.
    • Se você estiver usando tags de destino para as regras de firewall, verifique se as VMs de back-end do balanceador de carga estão marcadas corretamente.

    Para saber como configurar regras de firewall exigidas pelo balanceador de carga de rede de passagem externa, consulte Como configurar regras de firewall.

  • Verificar se o agente convidado do Google está em execução na VM de back-end. Se você consegue se conectar a uma VM de back-end íntegra, mas não consegue se conectar ao balanceador de carga, pode ser que o ambiente de convidado (antes chamado de ambiente de convidado do Windows/Linux) da VM não esteja em execução ou não consiga se comunicar com o servidor de metadados (metadata.google.internal, 169.254.169.254).

    Verifique:

    • Verifique se o agente convidado do Google está instalado e em execução na VM de back-end.
    • Verifique se as regras de firewall no sistema operacional convidado da VM de back-end (iptables ou firewall do Windows) não bloqueiam o acesso ao servidor de metadados.
  • Verifique se as VMs de back-end estão aceitando pacotes enviados para o balanceador de carga. Cada VM de back-end precisa ser configurada para aceitar os pacotes enviados ao balanceador de carga. Ou seja, o destino dos pacotes entregues às VMs de back-end é o endereço IP do balanceador de carga. Na maioria das vezes, isso é feito com uma rota local.

    Para VMs criadas com base em imagens do Google Cloud , o agente de convidado instala a rota local para o endereço IP do balanceador de carga. As instâncias do Google Kubernetes Engine baseadas no Container-Optimized OS implementam isso usando iptables.

    Em uma VM de back-end do Linux, execute o comando a seguir para verificar a presença da rota local. Substitua LOAD_BALANCER_IP pelo endereço IP do balanceador de carga:

    sudo ip route list table local | grep LOAD_BALANCER_IP
    
  • Verifique o endereço IP e a vinculação de porta do serviço nas VMs de back-end. Os pacotes enviados para um balanceador de carga de rede de passagem externa chegam às VMs de back-end com o endereço IP de destino do próprio balanceador de carga. Esse tipo de balanceador de carga não é um proxy e esse é o comportamento esperado.

    Para ver os serviços que estão escutando em uma porta, execute o seguinte comando:

    netstat -nl | grep ':PORT'
    

    O software em execução na VM de back-end precisa fazer o seguinte:

    • Detectar (vincular a) o endereço IP do balanceador de carga ou qualquer endereço IP (0.0.0.0 ou ::)
    • Detectar (vincular a) uma porta incluída na regra de encaminhamento do balanceador de carga

    Para testar isso, conecte-se a uma VM de back-end usando SSH ou RDP. Em seguida, execute os seguintes testes usando curl, telnet ou uma ferramenta semelhante:

    • Tente acessar o serviço entrando em contato com ele pelo endereço IP interno da própria VM de back-end, 127.0.0.1 ou localhost.
    • Tente acessar o serviço entrando em contato com ele pelo endereço IP da regra de encaminhamento do balanceador de carga.
  • Verifique se o tráfego da verificação de integridade pode alcançar as VMs de back-end. Para confirmar se o tráfego de verificação de integridade atinge as VMs de back-end, ative a geração de registros de verificação de integridade e pesquise entradas de registro bem-sucedidas.

Resolver problemas de VPC compartilhada

Se você estiver usando a VPC compartilhada e não for possível criar um novo balanceador de carga de rede de passagem externa em uma sub-rede específica, uma política da organização pode ser a causa. Na política da organização, adicione a sub-rede à lista de sub-redes permitidas ou entre em contato com o administrador da organização. Para mais informações, consulte a restrição constraints/compute.restrictSharedVpcSubnetworks.

Resolver problemas de failover

Se você configurou o failover para um balanceador de carga de rede de passagem externa, use as etapas a seguir para verificar a configuração:

  • Confira se você entende os conceitos de seleção de back-end e rastreamento de conexão e failover.
  • Verifique se você designou pelo menos um back-end de failover.
  • Revise quais back-ends estão íntegros usando o console Google Cloud ou gcloud compute backend-services get-health para determinar quais VMs são back-ends qualificados.
  • Verifique se a proporção de failover está definida corretamente.
  • Não recomendamos usar grupos gerenciados de instâncias com o escalonamento automático ativado em conjunto com o failover, porque o escalonamento automático muda o número de back-ends primários, de failover ou ambos. Isso pode resultar em uma mudança inesperada no conjunto de back-ends qualificados porque a proporção de failover é fixa.
  • Se uma VM cliente também for uma VM de back-end com balanceamento de carga, as conexões com o endereço IP da regra de encaminhamento do balanceador de carga serão enviadas para a própria VM de back-end. Para mais informações, consulte Teste de um único cliente.

Resolver problemas de geração de registros

Se você configurar a geração de registros para um balanceador de carga de rede de passagem externa, os seguintes problemas poderão ocorrer:

  • As medições de RTT, como valores de bytes, poderão estar ausentes em alguns dos registros se não houver pacotes suficientes na amostragem para capturar RTT. É mais provável que isso aconteça para conexões de baixo volume.
  • Valores RTT estão disponíveis apenas para fluxos TCP.
  • Alguns pacotes são enviados sem payload. Se houver amostras de pacotes somente de cabeçalho, o valor de bytes será 0.