Visão geral do balanceamento de carga de rede TCP/UDP externa

O balanceamento de carga de rede TCP/UDP externo do Google Cloud, referido balanceamento de carga de rede, é um balanceador de carga regional sem proxy. Um balanceador de carga de rede distribui o tráfego externo entre instâncias de máquina virtual (VM) na mesma região.

É possível configurar um balanceador de carga de rede para o tráfego TCP, UDP, ESP e ICMP. A compatibilidade com ESP e ICMP está em versão de pré-lançamento.

Um balanceador de carga de rede pode receber tráfego de:

  • Qualquer cliente na Internet
  • VMs do Google Cloud com IPs externos
  • VMs do Google Cloud que têm acesso à Internet por meio do Cloud NAT ou NAT baseada em instância

O balanceamento de carga da rede tem as seguintes características:

  • O balanceamento de carga da rede é um serviço gerenciado.
  • O balanceamento de carga da rede é implementado usando a rede virtual Andromeda e o Google Maglev.
  • Os balanceadores de carga de rede não são proxies.
    • Os pacotes com balanceamento de carga são recebidos por VMs de back-end com os endereços IP de origem e destino do pacote e, se o protocolo for baseado em portas, as portas de origem e de destino inalteradas.
    • As conexões com balanceamento de carga são encerradas pelas VMs de back-end.
    • As respostas das VMs de back-end vão diretamente para os clientes, e não voltam pelo balanceador de carga. O termo do setor para isso é retorno direto do servidor.

No diagrama a seguir, mostramos usuários na Califórnia, em Nova York e em Singapura. Todos eles estão se conectando aos recursos de back-end, que são myapp, test e travel. Quando um usuário em Singapura conecta-se ao back-end do Oeste dos EUA, o tráfego de entrada está mais próximo de Singapura, porque o intervalo é anycasted. A partir desse ponto, o tráfego é encaminhado para o back-end regional.

Três back-ends regionais e três regras de encaminhamento (clique para ampliar)
Exemplo de balanceamento de carga de rede (clique para ampliar)

Escopo

Um balanceador de carga de rede equilibra o tráfego proveniente da Internet.

O escopo de um balanceador de carga de rede é regional, e não global. Isso significa que um balanceador de carga de rede não pode abranger várias regiões. Em uma única região, o balanceador de carga atende a todas as zonas.

Casos de uso

Use o balanceamento de carga da rede nas seguintes circunstâncias:

  • Você precisa fazer o balanceamento de carga do tráfego não TCP ou de uma porta TCP que não é compatível com outros balanceadores de carga.
  • É aceitável que o tráfego SSL seja descriptografado por seus back-ends, no lugar do balanceador de carga. O balanceador de carga de rede não pode executar essa tarefa. Quando os back-ends descriptografam o tráfego SSL, há uma carga de CPU maior nas VMs.
  • O gerenciamento automático dos certificados SSL da VM de back-end é aceitável para você. Os certificados SSL gerenciados pelo Google estão disponíveis apenas para balanceamento de carga HTTP(S) e balanceamento de carga de proxy SSL.
  • Você precisa encaminhar os pacotes originais sem proxy. Por exemplo, se você precisa preservar o IP de origem do cliente.
  • Você tem uma configuração atual que usa um balanceador de carga de passagem e quer migrá-lo sem alterações.

Balanceamento de carga para aplicativos do GKE

Se você estiver criando aplicativos no GKE, recomendamos usar o controlador de serviços do GKE integrado, que implanta balanceadores de carga do Google Cloud em nome dos usuários do GKE. Isso é o mesmo que a arquitetura de balanceamento de carga independente, exceto pelo fato de o ciclo de vida dela ser totalmente automatizado e controlado pelo GKE.

Documentação relacionada do GKE:

Arquitetura

A arquitetura de um balanceador de carga de rede depende de você usar um balanceador de carga de rede baseado em serviço de back-end ou um balanceador de carga de rede baseado em pool de destino.

Balanceador de carga de rede baseado em serviço de back-end

Os balanceadores de carga de rede podem ser criados com um serviço de back-end regional que define o comportamento do balanceador de carga e como ele distribui o tráfego para os grupos de instância do back-end. Os serviços de back-end permitem recursos que não são compatíveis com pools de destino legados, como suporte para verificações de integridade não legadas (TCP, SSL, HTTP, HTTPS ou HTTP/2), escalonamento automático com instância gerenciada diminuição de conexão e uma política de failover configurável.

Os balanceadores de carga de rede baseados em serviço de back-end podem ser usados para balancear a carga do tráfego TCP, UDP, ESP e ICMP.

Para detalhes de arquitetura, consulte Balanceador de carga de rede com um serviço de back-end regional.

Também é possível fazer a transição de um balanceador de carga de rede baseado no pool de destino para usar um serviço de back-end. Para mais instruções, consulte Como fazer a transição de balanceadores de carga de rede de pools de destino para serviços de back-end.

Balanceador de carga de rede baseado em pool de destino

Um pool de destino é o back-end legado compatível com os balanceadores de carga da rede do Google Cloud. Um pool de destino define um grupo de instâncias que receberá o tráfego de entrada do balanceador de carga.

Os balanceadores de carga de rede com base em pool de destino aceitam tráfego TCP ou UDP.

Para detalhes, consulte balanceador de carga de rede com um back-end de pool de segmentação.

Como comparar o balanceamento de carga de rede com outros balanceadores de carga do Google Cloud

Conheça as diferenças entre os balanceadores de carga do Google Cloud nos documentos a seguir: