Visão geral do balanceador de carga de rede de passagem interna (original) (raw)

Um balanceador de carga de rede de passagem interno é um balanceador de carga regional, criado na pilha de virtualização de rede Andromeda.

Os balanceadores de carga TCP/UDP internos distribuem o tráfego entre instâncias de máquina virtual (VM) interna na mesma região em uma rede de nuvem privada virtual (VPC). Com isso, é possível executar e escalonar serviços em um endereço IP interno que seja acessível apenas a sistemas na mesma rede VPC ou que estejam conectados à sua rede VPC.

Use um balanceador de carga de rede de passagem interno nas seguintes circunstâncias:

Os balanceadores de carga de rede de passagem internos são adequados para muitos casos de uso. Para conferir alguns exemplos gerais, consulteVisão geral do balanceador de carga de rede de passagem.

Como funcionam os balanceadores de carga de rede de passagem internos

Um balanceador de carga de rede de passagem interno tem um front-end (a regra de encaminhamento) e um back-end (o serviço de back-end). Use grupos de instâncias ou NEGs zonais GCE_VM_IP como back-ends no serviço de back-end. Neste exemplo, mostramos os back-ends de grupos de instâncias.

Exemplo geral de balanceador de carga de rede de passagem interno.

Exemplo geral de balanceador de carga de rede de passagem interno (clique para ampliar).

Ao contrário de um balanceador de carga de proxy, um balanceador de carga de rede de passagem interno não encerra conexões de clientes e depois estabelece novas conexões com back-ends. Em vez disso, um balanceador de carga de rede de passagem interno encaminha diretamente as conexões dos clientes para back-ends qualificados, sem um proxy entre os clientes e os back-ends. As respostas de cada back-end selecionado são entregues usando o retorno direto do servidor. Para mais informações, consulteDistribuição de tráfego para balanceadores de carga de rede de passagem internae Endereços IP para pacotes de solicitação e retorno.

O balanceador de carga monitora a integridade do back-end usando sondagens de verificação de integridade. Para mais informações, consulte a seção Verificação de integridade.

O Google Cloud ambiente de convidado do Linux, o do Windows ou um processo equivalente configura cada VM de back-end com o endereço IP do balanceador de carga. Para VMs criadas com base em imagens do Google Cloud , o agente de convidado (antigo ambiente de convidado do Windows ou Linux) instala a rota local do endereço IP do balanceador de carga. As instâncias do Google Kubernetes Engine baseadas no Container-Optimized OS implementam isso usando iptables.

Google Cloud A rede virtual gerencia o fornecimento de tráfego e o escalonamento conforme apropriado.

Protocolos, esquema e escopo

Cada balanceador de carga de rede de passagem interna é compatível com o seguinte:

Um balanceador de carga de rede de passagem interna não é compatível com o seguinte:

Acesso de cliente

Por padrão, o balanceador de carga só dá suporte a clientes que estão na mesma região que ele. Os clientes podem estar na mesma rede que o balanceador de carga ou em uma rede VPC conectada por umpeering de rede VPC. É possível ativar o acesso global para permitir que clientes de qualquer região acessem o balanceador de carga de rede de passagem interno.

Balanceador de carga de rede de passagem interno com acesso global.

Balanceador de carga de rede de passagem interno com acesso global (clique para ampliar).

Na tabela a seguir, é possível ver um resumo do acesso do cliente.

Acesso global desativado Acesso global ativado
Os clientes precisam estar na mesma região que o balanceador de carga. Também precisam estar na mesma rede VPC do balanceador de carga ou em uma conectada à do balanceador usando o peering da rede VPC. Os clientes podem estar em qualquer região. Ainda precisam estar na mesma rede VPC do balanceador de carga ou em uma conectada à do balanceador usando peering da rede VPC.
Os clientes locais podem acessar o balanceador de carga por meio de túneis VPN do Cloud ou anexos da VLAN. Esses túneis ou anexos precisam estar na mesma região do balanceador de carga. Os clientes locais podem acessar o balanceador de carga por meio de túneis VPN do Cloud ou anexos da VLAN. Esses túneis ou anexos podem estar em qualquer região.

Endereços IP para pacotes de solicitação e retorno

Quando uma VM de back-end recebe um pacote com carga balanceada de um cliente, a origem e o destino do pacote são os seguintes:

Como o balanceador de carga é um balanceador de carga de transmissão, e não um proxy, os pacotes chegam carregando o endereço IP de destino da regra de encaminhamento do balanceador de carga. Configure o software em execução nas VMs de back-end para fazer o seguinte:

Os pacotes de retorno são enviados diretamente das VMs de back-end do balanceador de carga para o cliente. Os endereços IP de origem e de destino do pacote de retorno dependem do protocolo:

Nesta tabela, há um resumo das origens e dos destinos dos pacotes de resposta:

Tipo de tráfego Origem Destino
TCP O endereço IP da regra de encaminhamento do balanceador de carga A origem do pacote solicitante
UDP Na maioria dos casos de uso, o endereço IP da regra de encaminhamento do balanceador de carga 1 A origem do pacote solicitante

1 É possível definir a origem do pacote de resposta para o endereço IPv4 interno principal da NIC da VM ou um intervalo de endereços IP do alias. Se a VM estiver com o encaminhamento de IP ativado, origens de endereço IP arbitrárias também poderão ser usadas. Não usar o endereço IP da regra de encaminhamento como uma origem é um cenário avançado, porque o cliente recebe um pacote de resposta de um endereço IP interno que não corresponde ao endereço IP a que ele enviou um pacote de solicitação.

Arquitetura

Um balanceador de carga de rede de passagem interna com vários back-ends distribui conexões entre todos esses back-ends. Para informações sobre o método de distribuição e as opções de configuração, consulte Distribuição de tráfego.

É possível usar grupos de instâncias ou NEGs zonais, mas não uma combinação de ambos, como back-ends para um balanceador de carga de rede de passagem interno:

Em Alta disponibilidade, você encontra instruções sobre como projetar um balanceador de carga interno que não dependa de uma única zona.

As instâncias que participam como VMs de back-end para balanceadores de carga de rede de passagem internos precisam executar o ambiente de convidado do Linux ou do Windows apropriado ou outros processos que proporcionem funcionalidade equivalente. Esse ambiente de convidado precisa contatar o servidor de metadados (metadata.google.internal, 169.254.169.254) para ler os metadados da instância a fim de gerar rotas locais para aceitar o tráfego enviado ao endereço IP interno do balanceador de carga.

Neste diagrama, mostramos a distribuição de tráfego entre VMs localizadas em dois grupos de instâncias separados. O tráfego enviado da instância do cliente para o endereço IP do balanceador de carga (10.10.10.9) é distribuído entre as VMs de back-end em qualquer um dos grupos de instâncias. As respostas enviadas de qualquer uma das VMs de back-end exibidas são entregues diretamente à VM cliente.

É possível usar um balanceador de carga de rede de passagem interna com uma rede VPC de modo personalizado ou automático. Também é possível criar balanceadores de carga de rede de passagem interna com uma rede legada existente.

Um balanceador de carga de rede de passagem interna não é compatível com o seguinte:

Endereço IP interno

Os balanceadores de carga de rede de passagem interna são compatíveis com sub-redes somente IPv4, de pilha dupla e somente IPv6. Para mais informações sobre cada uma delas, consulte Tipos de sub-redes.

Um balanceador de carga de rede de passagem interna requer pelo menos uma regra de encaminhamento. A regra de encaminhamento faz referência ao endereço IP interno:

Configuração do firewall

Os balanceadores de carga de rede de passagem interna exigem a seguinte configuração para políticas de firewall hierárquicas e regras de firewall da VPC:

Para mais informações, consulte Como configurar regras de firewall.

Regras de encaminhamento

Uma regra de encaminhamento especifica o protocolo e as portas em que o balanceador de carga aceita tráfego. Como os balanceadores de carga de rede de passagem internos não são proxies, eles passam o tráfego para back-ends no mesmo protocolo e na mesma porta.

Um balanceador de carga de rede de passagem interna requer pelo menos uma regra de encaminhamento interno. Defina várias regras de encaminhamento para o mesmo balanceador de carga.

Se você quiser que o balanceador de carga processe tráfego IPv4 e IPv6, crie duas regras de encaminhamento: uma regra para tráfego IPv4 que aponte para back-ends de IPv4 (ou pilha dupla) e uma regra para tráfego IPv6 que aponte somente para back-ends de pilha dupla. É possível ter uma regra de encaminhamento IPv4 e uma de IPv6 para fazer referência ao mesmo serviço de back-end, mas ele precisa fazer referência aos back-ends de pilha dupla.

A regra de encaminhamento precisa referenciar umasub-rede específica na mesma rede VPC e na mesma região dos componentes de back-end do balanceador de carga. Esse requisito tem as seguintes implicações:

Protocolos da regra de encaminhamento

Os balanceadores de carga de rede de passagem interna são compatíveis com as seguintes opções de protocolo IPv4 para cada regra de encaminhamento: TCP, UDP ou L3_DEFAULT.

Os balanceadores de carga de rede de passagem interna são compatíveis com as seguintes opções de protocolo IPv6 para cada regra de encaminhamento: TCP ou UDP.

A opção L3_DEFAULT (Visualizar) permite que você faça o balanceamento de carga dos protocolos TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH e GRE.

Além de aceitar protocolos diferentes de TCP e UDP, a opção L3_DEFAULT possibilita que uma única regra de encaminhamento encaminhe simultaneamente o tráfego de vários protocolos. Por exemplo, além de fazer solicitações HTTP, também é possível dar um ping no endereço IP do balanceador de carga.

As regras de encaminhamento que usam os protocolos TCP ou UDP podem fazer referência a um serviço de back-end usando o mesmo protocolo que a regra de encaminhamento ou um serviço de back-end usando o protocolo UNSPECIFIED.

Se você estiver usando o protocolo L3_DEFAULT, vai precisar configurar a regra de encaminhamento para aceitar o tráfego em todas as portas. Para configurar todas as portas, defina --ports=ALL usando a CLI do Google Cloud ou defina allPorts como True usando a API.

A tabela a seguir resume como usar essas configurações para protocolos diferentes:

Tráfego para balanceamento de carga Protocolo da regra de encaminhamento Protocolo do serviço de back-end
TCP (IPv4 ou IPv6) TCP TCP or UNSPECIFIED
UDP (IPv4 ou IPv6) UDP UDP or UNSPECIFIED
TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH e GRE L3_DEFAULT UNSPECIFIED

Regras de encaminhamento e acesso global

As regras de encaminhamento de um balanceador de carga de rede de passagem interna são regionais, mesmo quando o acesso global está ativado. Depois de ativar o acesso global, a sinalização allowGlobalAccess da regra de encaminhamento interno regional é definida como true.

Regras de encaminhamento e especificações de porta

Ao criar uma regra de encaminhamento interno, escolha uma das seguintes especificações de porta:

Com uma regra de encaminhamento interno compatível com todas as portas TCP ou UDP, é possível fazer com que as VMs de back-end executem vários aplicativos, cada um na própria porta. O tráfego enviado para uma determinada porta é entregue ao aplicativo correspondente, e todos os aplicativos usam o mesmo endereço IP.

Quando precisar encaminhar o tráfego em mais de cinco portas específicas, combineregras de firewall com as regras de encaminhamento. Ao criar a regra de encaminhamento, especifique todas as portas e crie regras de firewall de entrada allowque tenham apenas tráfego para as portas correspondentes. Aplique as regras de firewall às VMs de back-end.

Não modifique regras de encaminhamento depois de criá-las. Se precisar alterar as portas especificadas ou o endereço IP interno de uma regra de encaminhamento interno, será necessário excluí-lo e recriá-lo.

Várias regras de encaminhamento para um único serviço de back-end

É possível configurar várias regras de encaminhamento interno que fazem referência ao mesmo serviço de back-end interno. Um balanceador de carga de rede de passagem interna requer pelo menos uma regra de encaminhamento interno.

Configurar várias regras de encaminhamento para o mesmo serviço de back-end permite fazer o seguinte:

Para mais informações sobre cenários que envolvem duas ou mais regras de encaminhamento interno que compartilham um endereço IP interno comum, consulte Várias regras de encaminhamento com o mesmo endereço IP.

Ao usar várias regras de encaminhamento interno, configure o software em execução nas VMs de back-end para que seja vinculado a todos os endereços IP da regra de encaminhamento ou a qualquer endereço (0.0.0.0/0 para IPv4 ou ::/0 para IPv6). O endereço IP de destino de um pacote entregue pelo balanceador de carga é o endereço IP interno vinculado à respectiva regra de encaminhamento interno. Para mais informações, consulte Solicitações TCP e UDP e pacotes de retorno.

Serviço de back-end

Cada balanceador de carga de rede de passagem interna tem um serviço de back-end interno regional que define parâmetros e comportamento de back-end. O nome do serviço de back-end é o nome do balanceador de carga de rede de passagem interno mostrado no console Google Cloud .

Todo os serviços de back-end definem os seguintes parâmetros de back-end:

Cada serviço de back-end opera em uma única região e distribui o tráfego para VMs de back-end em uma única rede VPC:

Back-ends de grupo de instâncias e interfaces de rede

Em um determinado grupo de instâncias (gerenciadas ou não), a interface de rede nic0 de cada VM membro está sempre na mesma rede VPC:

As VMs membros podem ter outras interfaces de rede (vNICs ou interfaces de rede dinâmicas). Cada interface que não é nic0 pode estar na rede VPC do grupo de instâncias (a rede usada pela interface nic0) ou em uma rede VPC diferente.

Para distribuir o tráfego balanceado por carga a uma interface de rede que não seja nic0, recomendamos usar NEGs zonais com endpoints GCE_VM_IP. No entanto, é possível definir a rede VPC de um serviço de back-end para corresponder a uma rede VPC que contenha interfaces de rede não nic0 de VMs em um grupo de instâncias. Para mais informações, consulteEspecificação de rede de serviços de back-ende Regras de rede de serviços de back-end.

Back-ends de NEG zonais e interfaces de rede

Ao criar um novo NEG zonal com endpoints GCE_VM_IP, é preciso associá-lo explicitamente a uma sub-rede de uma rede VPC antes de adicionar endpoints ao NEG. Nem a sub-rede nem a rede VPC podem ser alteradas após a criação do NEG.

Em um determinado NEG, cada endpoint GCE_VM_IP representa uma interface de rede. A interface de rede precisa estar na sub-rede associada ao NEG. Do ponto de vista de uma instância do Compute Engine, a interface de rede pode usar qualquer identificador. Do ponto de vista de ser um endpoint em um NEG, a interface de rede é identificada usando o endereço IPv4 interno principal. Para mais informações, consulte NEGs com endpoints GCE_VM_IP.

Há duas maneiras de adicionar um endpoint GCE_VM_IP a um NEG:

Especificação da rede de serviço de back-end

É possível associar explicitamente uma rede VPC a um serviço de back-end usando a sinalização --network ao criar o serviço de back-end. Asregras da rede de serviço de back-end entram em vigor imediatamente.

Se você omitir a flag --network ao criar um serviço de back-end, oGoogle Cloud usará um dos seguintes eventos qualificados para definir implicitamente a rede VPC associada do serviço de back-end. Depois de definida, a rede VPC associada do serviço de back-end não pode ser alterada:

Depois que a rede VPC do serviço de back-end for definida por um evento qualificado, todas as regras de encaminhamento ou grupos de back-end adicionados precisarão seguir as regras de rede do serviço de back-end.

Regras da rede de serviço de back-end

As seguintes regras se aplicam depois de associar um serviço de back-end a uma rede VPC específica:

Back-ends de pilha dupla (IPv4 e IPv6)

Se você quiser que o balanceador de carga use back-ends de pilha dupla que processem tráfego IPv4 e IPv6, observe os seguintes requisitos:

Back-ends somente IPv6

Se você quiser que o balanceador de carga use back-ends somente IPv6, observe os requisitos a seguir:

As VMs somente IPv6 podem ser criadas em sub-redes de pilha dupla e somente IPv6, mas as VMs de pilha dupla não podem ser criadas em sub-redes somente IPv6.

Subconfiguração de back-ends

A subconfiguração do back-end é um recurso opcional que melhora o desempenho ao limitar o número de back-ends a que o tráfego é distribuído.

Recomendamos que você ative a subconfiguração apenas se precisar aceitar mais de 250 VMs de back-end em um único balanceador de carga. Para mais informações, consulte Subcriação de back-end para o balanceador de carga de rede de passagem interna.

Verificação de integridade

As informações de verificação de integridade são usadas para determinar os back-ends qualificados para novas conexões, e você pode controlar se as conexões atuais persistem em back-ends não íntegros. Para mais informações sobre back-ends qualificados, consulte Distribuição de tráfego para balanceadores de carga de rede de passagem interna.

Tipo, protocolo e porta da verificação de integridade

O serviço de back-end do balanceador de carga precisa referenciar uma verificação de integridade global ou regional, usando qualquer protocolo e porta compatíveis. O protocolo e os detalhes da porta da verificação de integridade não precisam corresponder ao protocolo do serviço de back-end do balanceador de carga e às informações de porta IP da regra de encaminhamento.

Como todos os protocolos de verificação de integridade compatíveis dependem do TCP, quando você usa um balanceador de carga de rede de passagem interna para balancear conexões e tráfego de outros protocolos, as VMs de back-end precisam executar um servidor baseado em TCP para responder às sondagens de verificação de integridade. Por exemplo, é possível usar uma verificação de integridade HTTP combinada com a execução de um servidor HTTP em cada VM de back-end. Neste exemplo, seus scripts ou software são responsáveis por configurar o servidor HTTP para que ele retorne o status 200 somente quando o software que escuta conexões balanceadas por carga estiver operacional.

Para mais informações sobre protocolos e portas de verificação de integridade compatíveis, consulte Categorias, protocolos e portas de verificação de integridade e Como as verificações de integridade funcionam.

Pacotes de verificação de integridade

Os verificadores de integridade enviam pacotes para a interface de rede da VM de back-end na rede VPC que corresponde à especificação de rede do serviço de back-end. Os pacotes de verificação de integridade têm as seguintes características:

O software em execução nas VMs de back-end precisa se vincular e detectar as combinações relevantes de endereço IP e porta. A maneira mais simples de fazer isso é configurar o software para vincular e detectar as portas relevantes de qualquer um dos endereços IP da VM (0.0.0.0). Para mais informações, consulte Destino dos pacotes de sondagem.

Arquitetura de alta disponibilidade

O balanceador de carga de rede de passagem interna está altamente disponível por padrão. Não há etapas especiais para deixar o balanceador de carga altamente disponível porque o mecanismo não depende de um único dispositivo ou instância de VM.

Para implantar as instâncias de VM de back-end em várias zonas, siga estas recomendações de implantação:

A tabela a seguir resume os requisitos do componente para balanceadores de carga de rede de passagem interna usados com redes VPC compartilhadas. Por exemplo, consulte Como criar um balanceador de carga de rede de passagem interna na página "Como provisionar a VPC compartilhada".

Endereço IP Regra de encaminhamento Componentes de back-end
Um endereço IP interno precisa ser definido no mesmo projeto que as VMs de back-end.Para que o balanceador de carga esteja disponível em uma rede VPC compartilhada, o Google Cloud endereço IP interno precisa ser definido no mesmo projeto de serviço em que as VMs de back-end estão localizadas e precisa referenciar uma sub-rede na rede VPC compartilhada desejada no projeto host. O endereço vem do intervalo de IP principal da sub-rede referenciada. Se você criar um endereço IP interno em um projeto de serviço e a sub-rede do endereço IP estiver na rede VPC do projeto de serviço, o balanceador de carga de rede de passagem interno será local para o projeto de serviço. O balanceador de carga de rede de passagem interna não é local para nenhum projeto host de VPC compartilhada. Uma regra de encaminhamento interna precisa ser definida no mesmo projeto das VMs de back-end.Para que o balanceador de carga esteja disponível em uma rede VPC compartilhada, a regra de encaminhamento interno precisa ser definida no mesmo projeto de serviço em que as VMs de back-end estão localizadas e precisa referenciar a mesma sub-rede (na rede VPC compartilhada) que o endereço IP interno associado referencia.Se você criar uma regra de encaminhamento interno em um projeto de serviço e a sub-rede da regra de encaminhamento estiver na rede VPC do projeto de serviço, o balanceador de carga de rede de passagem interno será local para o projeto de serviço. O balanceador de carga de rede de passagem interna não é local para nenhum projeto host de VPC compartilhada. Em um cenário de VPC compartilhada, as VMs de back-end estão localizadas em um projeto de serviço. Um serviço de back-end interno regional e uma verificação de integridade precisam ser definidos nesse projeto de serviço.

Distribuição de tráfego

Os balanceadores de carga de rede de passagem interna são compatíveis com várias opções de personalização da distribuição de tráfego, incluindo afinidade da sessão, rastreamento de conexão e failover. Para mais detalhes sobre como os balanceadores de carga de rede de passagem interna distribuem o tráfego e como essas opções interagem entre si, consulte Distribuição de tráfego para balanceadores de carga de rede de passagem interna.

Cotas e limites

Para informações sobre cotas e limites, consulteCotas para recursos de balanceamento de carga.

Limitações

A seguir