Neste guia, você verá como solucionar problemas de configuração de balanceadores de carga TCP/UDP internos do Google Cloud.
Visão geral
Tipos de problemas discutidos neste guia:
- Problemas gerais de conectividade
- Problemas de failover de back-end
- Problemas de balanceador de carga como próximo salto
Antes de começar
Antes de investigar os problemas, conheça as páginas a seguir.
Para conectividade geral:
- Conceitos de balanceamento de carga TCP/UDP interno
- Como configurar o balanceamento de carga TCP/UDP interno
Para failover:
- Conceitos de failover para balanceamento de carga TCP/UDP interno
- Como configurar o failover para o balanceamento de carga TCP/UDP interno
Para o próximo salto:
- Conceitos de próximo salto para balanceamento de carga TCP/UDP interno
- Como configurar o balanceamento de carga TCP/UDP interno para dispositivos de terceiros
Solução de problemas gerais de conectividade
- Sintoma: não consigo me conectar ao meu balanceador de carga TCP/UDP interno de um cliente de VM em outra região.
- Motivo: o acesso global não está ativado.
Se você não conseguir se conectar a um balanceador de carga TCP/UDP interno, verifique os seguintes problemas:
- 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 o cliente conectado ao balanceador de carga está na mesma região do balanceador de carga. Se o cliente estiver em outra região, verifique se o acesso global está ativado.
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.
Sintoma: não consigo me conectar ao meu serviço por meio do meu balanceador de carga TCP/UDP interno, mas consigo me conectar diretamente a uma VM de back-end.
Motivo: O ambiente do convidado não está em execução ou não consegue se comunicar com o servidor de metadados (
metadata.google.internal
,169.254.169.254
).
Verifique:
- se o ambiente do convidado está instalado e em execução na VM de back-end;
- se as regras de firewall no sistema operacional convidado da VM de back-end (iptables, firewall do Windows) não bloqueiam o acesso ao servidor de metadados;
- se o serviço na VM de back-end está escutando ao endereço IP da regra de encaminhamento do balanceador de carga.
Solução de problemas de VPC compartilhada
Se você estiver usando a VPC compartilhada e não for possível criar um novo
balanceador de carga TCP/UDP interno 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 ver mais informações, consulte a restrição constraints/compute.restrictSharedVpcSubnetworks
.
Solução de problemas de failover
Se você tiver configurado o failover para um balanceador de carga TCP/UDP interno, verá nas seções a seguir descrições dos problemas que podem ocorrer.
Conectividade
- Verifique se você designou pelo menos um back-end de failover.
- Verifique suas configurações de política de failover:
- Proporção de failover
- Tráfego em queda quando todas as VMs de back-end não forem íntegras
- Desativação da diminuição da conexão no failover
Problemas com failover e grupos de instâncias gerenciadas
- Sintoma: o pool ativo está alternando entre os back-ends primário e de failover.
- Causa possível: o uso de grupos de instâncias gerenciadas com escalonamento automático e failover pode fazer com que o pool ativo realize failover e failback repetidamente entre os back-ends primário e de failover. O Google Cloud não impede que você configure o failover com grupos de instâncias gerenciadas, porque sua implantação pode se beneficiar dessa configuração.
Desativar a restrição da diminuição da conexão para grupos de failover
Desativar a diminuição da conexão só funciona se o serviço de back-end estiver configurado com o protocolo TCP.
A seguinte mensagem de erro será exibida se você criar um serviço de back-end com UDP enquanto a diminuição da conexão estiver desativada:
gcloud compute backend-services create my-failover-bs --global-health-checks \ --load-balancing-scheme internal --health-checks my-tcp-health-check --region us-central1 --no-connection-drain-on-failover --drop-traffic-if-unhealthy --failover-ratio 0.5 --protocol UDP ERROR: (gcloud.compute.backend-services.create) Invalid value for [--protocol]: can only specify --connection-drain-on-failover if the protocol is TCP.
Tráfego enviado para VMs de back-end inesperadas
Primeiro, verifique o seguinte: se a VM cliente também for uma VM de back-end do balanceador de carga, as conexões enviadas ao endereço IP da regra de encaminhamento do balanceador de carga serão sempre respondidas pela própria VM de back-end. Para mais informações, consulte como testar conexões a partir de um único cliente e como enviar solicitações a partir de VMs com balanceamento de carga.
Se a VM cliente não for uma VM de back-end do balanceador de carga:
Para solicitações de um único cliente, consulte como testar conexões de um único cliente para entender as limitações desse método.
Verifique se você configurou a permissão de entrada nas regras de firewall para permitir verificações de integridade.
Para uma configuração de failover, compreenda como funciona a assinatura no pool ativo e quando o Google Cloud realiza failover e failback. Inspecione a configuração do seu balanceador de carga:
Use o Console do Cloud para verificar o número de VMs de back-end íntegras em cada grupo de instâncias de back-end. O Console do Cloud também mostra quais VMs estão no pool ativo.
Verifique se a proporção de failover do seu balanceador de carga está definida corretamente. Por exemplo, se você tiver 10 VMs primárias e uma taxa de failover configurada em
0.2
, o Google Cloud realizará um failover quando menos de 2 (10 × 0.2 = 2
) VMs primárias forem íntegras. Uma proporção de failover de0.0
tem um significado especial: o Google Cloud realiza um failover quando nenhuma VM primária for íntegra.
Conexões atuais encerradas durante o failover ou o failback
Edite a política de failover do seu serviço de back-end. Verifique se a diminuição da conexão no failover está ativada.
Solução de problemas do balanceador de carga como próximo salto
Quando você define um balanceador de carga TCP/UDP interno como o próximo salto de uma rota estática personalizada, os seguintes problemas podem ocorrer:
Conectividade
Se não for possível dar um ping no seu back-end, lembre-se de que uma rota com o balanceador de carga TCP/UDP interno definido como o próximo salto só é suportada para tráfego TCP e UDP. Outros pacotes de protocolo, como ICMP, são ignorados pelo balanceador de carga. Para mais informações, consulte TCP, UDP e outro tráfego de protocolo.
Ao usar um balanceador de carga TCP/UDP interno como próximo salto para uma rota estática personalizada, todo o tráfego TCP e UDP é entregue às VMs de back-end íntegras do balanceador de carga, independentemente do protocolo configurado para o serviço de back-end interno do balanceador de carga, e independentemente da porta ou portas configuradas na regra de encaminhamento interno do balanceador de carga.
Certifique-se de que você criou regras de firewall de permissão de entrada que identificam corretamente as origens de tráfego que precisam ser entregues às VMs de back-end por meio do próximo salto da rota estática personalizada. Os pacotes que chegam nas VMs de back-end preservam os endereços IP de origem, mesmo quando são entregues por meio de uma rota estática personalizada.
Valor inválido para o intervalo de destino
O intervalo de destino de uma rota estática personalizada não pode ser mais específico do que qualquer rota de sub-rede em sua rede VPC. Se você receber a seguinte mensagem de erro ao criar uma rota estática personalizada:
Invalid value for field 'resource.destRange': [ROUTE_DESTINATION]. [ROUTE_DESTINATION] hides the address space of the network .... Cannot change the routing of packets destined for the network.
Não é possível criar uma rota estática personalizada com um destino que corresponda exatamente ou seja mais específico (com uma máscara mais longa) do que uma rota de sub-rede. Consulte a aplicabilidade e a ordem para mais informações.
Se os pacotes forem para um destino inesperado, remova outras rotas na sua rede VPC com destinos mais específicos. Leia a ordem de roteamento para entender a seleção de rotas do Google Cloud.
Tags de rede não são compatíveis
Não é possível atribuir uma tag de rede a uma rota estática personalizada quando o próximo salto for um balanceador de carga TCP/UDP interno. Por exemplo, o seguinte comando gcloud
produz a mensagem de erro mostrada abaixo:
$ gcloud compute routes create example-route \ --destination-range=0.0.0.0/0 \ --next-hop-ilb=internal-lb-forwarding-rule \ --tags='my_tag' ERROR: (gcloud.compute.routes.create) Could not fetch resource: - Invalid value for field 'resource.tags': ''. Tag is not supported for routes with next hop ilb.
A seguir
- Para noções básicas importantes, consulte Conceitos de balanceamento de carga TCP/UDP interno.
- Para informações importantes sobre failover, consulte Conceitos de failover para balanceamento de carga TCP/UDP interno.
- Consulte Balanceamento de carga interno e nomes do DNS para as opções de nome do DNS disponíveis que o balanceador de carga pode usar.
- Para um exemplo de configuração de balanceador de carga TCP/UDP interno, consulte esta página.
- Para as etapas de configuração e um exemplo de configuração de failover do balanceador de carga TCP/UDP interno, consulte Como configurar failover para balanceamento de carga TCP/UDP interno.
- Para mais informações sobre como configurar a geração de registros e o monitoramento do balanceamento de carga TCP/UDP interno, consulte geração de registros e monitoramento do balanceamento de carga TCP/UDP interno.
- Para mais informações sobre como acessar balanceadores de carga TCP/UDP internos de redes de peering conectadas à rede VPC, consulte esta página.