Nesta página, você encontra uma visão geral de como o Google Kubernetes Engine (GKE) cria e gerencia o Cloud Load Balancing. Nesta página, consideramos que você tenha conhecimento sobre o seguinte:
- Tipos de Trusted Cloud by S3NS balanceadores de carga
- A diferença entre balanceadores de carga da camada 4 (de rede) e da camada 7 (de aplicativo)
Esta página é destinada a arquitetos de nuvem e especialistas em redes que projetam e arquitetam a rede para a organização. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no conteúdo do Trusted Cloud , consulte Tarefas e funções de usuário comuns do GKE Enterprise.
Como o GKE cria balanceadores de carga
Para tornar seus aplicativos acessíveis de fora do cluster (usuários externos) ou dentro da sua rede particular (usuários internos), exponha os aplicativos provisionando balanceadores de carga usando as APIs Gateway, Entrada e Service. Como alternativa, é possível criar os componentes do balanceador de carga por conta própria, enquanto o GKE gerencia os grupos de endpoints de rede (NEGs) que conectam o balanceador de carga aos pods no cluster.
Gateway
O controlador do gateway do GKE é a implementação do Google da API Kubernetes Gateway para o Cloud Load Balancing. A API Gateway é um projeto de código aberto que visa padronizar como as malhas de serviço e os controladores de entrada expõem aplicativos no Kubernetes. Ele foi projetado para ser um sucessor mais expressivo, flexível e extensível do recurso Entrada.
O controlador do gateway do GKE é usado para configurar balanceadores de carga de aplicativo da camada 7 e expor o tráfego HTTP(S) aos aplicativos executados no cluster.
Use a API Gateway para implementar seu balanceador de carga.
Entrada
O controlador de entrada do GKE é a implementação do Google da API Ingress. A API Ingress permite gerenciar o acesso externo aos serviços executados em um cluster. Quando você cria um recurso de entrada no GKE, o controlador configura automaticamente um balanceador de carga de aplicativo da camada 7 que permite que o tráfego HTTP ou HTTP(S) chegue aos aplicativos executados no cluster.
O GKE Gateway é a opção recomendada para novas implantações e aplicativos que exigem gerenciamento avançado de tráfego, suporte a vários protocolos ou melhor multitenancy. No entanto, o GKE Ingress é uma opção viável para cenários de roteamento HTTP/HTTPS mais simples, especialmente para configurações atuais em que os benefícios da migração para a API Gateway ainda não superam o esforço.
Serviços LoadBalancer
A API Service permite
expor aplicativos executados como pods no cluster ao tráfego
externo ou interno. Quando você cria um serviço do tipo LoadBalancer
, o GKE
cria automaticamente um balanceador de carga de rede
de passagem da camada 4 (TCP/UDP) com base nos parâmetros do manifesto do serviço.
Nos balanceadores de carga de rede de passagem, quando o tráfego chega às VMs de back-end, os endereços IP de origem e destino originais, o protocolo de comunicação (como TCP ou UDP) e os números de porta (se o protocolo os usar) permanecem os mesmos. Isso significa que o tráfego é transmitido diretamente para as VMs ou pods de back-end e o balanceador de carga não encerra as conexões. Os serviços de back-end processam o encerramento das conexões e garantem que o tráfego flua sem problemas do cliente para o serviço.
Balanceamento de carga ponderado
Se você configurou um serviço LoadBalancer externo que pode ser acessado por clientes fora da rede VPC e por VMs Trusted Cloud , ative o balanceamento de carga ponderado. O balanceamento de carga ponderado distribui o tráfego com base no número de pods de serviço em cada nó do GKE. Assim, os nós com mais pods de serviço recebem uma proporção maior de tráfego em comparação com os nós que têm menos pods.
NEGs independentes
Outro método para gerenciar os balanceadores de carga no GKE é criar os componentes do balanceador de carga por conta própria e deixar o GKE gerenciar as NEGs. Esse tipo de balanceador de carga é chamado de balanceador de carga de rede de proxy. Os NEGs são uma maneira de representar grupos de endpoints de back-end (por exemplo, pods) para balanceamento de carga.
Esse tipo de balanceador de carga é destinado apenas ao tráfego TCP. Os balanceadores de carga de rede de proxy distribuem o tráfego TCP para back-ends na sua rede VPC ou em outros ambientes de nuvem. O tráfego é encerrado na camada de balanceamento de carga. Em seguida, o balanceador de carga encaminha o tráfego estabelecendo novas conexões TCP com o back-end disponível mais próximo.
O que é o balanceamento de carga nativo de contêiner?
O balanceamento de carga nativo do contêiner é a prática de distribuir o tráfego de maneira uniforme diretamente para os endereços IP de pods individuais (em vez de nós) usando os NEGs GCE_VM_IP_PORT
. Com os NEGs GCE_VM_IP_PORT
, é possível
especificar endpoints de back-end usando o endereço IP interno principal de uma
máquina virtual (VM) do Compute Engine ou um endereço IP de um dos
intervalos de IP de alias configurados da VM.
O balanceamento de carga nativo de contêiner é usado para todos os balanceadores de carga da camada 7 gerenciados pelo GKE, incluindo gateway e entrada, e NEGs independentes. Os serviços LoadBalancer não usam o balanceamento de carga nativo de contêiner. No entanto, é possível conseguir uma capacidade semelhante ativando o balanceamento de carga ponderado.
O balanceamento de carga nativo de contêiner tem várias vantagens, incluindo melhor desempenho da rede e verificações de integridade, porque é direcionado para os pods. Para mais informações, consulte Balanceamento de carga nativo de contêiner.
Tabelas de resumo
Use as tabelas a seguir para planejar sua configuração de balanceamento de carga.
Escolher um tipo de balanceador de carga
A tabela a seguir mostra o tipo de balanceador de carga criado para um determinado recurso (gateway, entrada ou serviço LoadBalancer):
Recurso do Kubernetes | Tipo de balanceador de carga criado | |
---|---|---|
Balanceador de carga de aplicativo | Balanceador de carga de rede de passagem | |
Gateway | ||
Entrada | ||
Serviço LoadBalancer |
Escolher um método para criar um balanceador de carga
A tabela a seguir mostra as opções no GKE para criar o balanceador de carga escolhido:
Tipo de balanceador de carga | Métodos para criar o balanceador de carga escolhido | |||
---|---|---|---|---|
Gateway | Entrada | Serviço LoadBalancer | NEGs independentes | |
Balanceador de carga de aplicativo externo global | ||||
Balanceador de carga de aplicativo externo clássico | ||||
Balanceador de carga de aplicativo externo regional | ||||
Balanceador de carga de aplicativo interno regional | ||||
Balanceador de carga de aplicativo interno entre regiões | ||||
Balanceador de carga de rede proxy
(todos os tipos) |
||||
Balanceador de carga de rede de passagem
(interno e externo) |
A seguir
- Saiba mais sobre a API Gateway no GKE.
- Saiba mais sobre a Entrada do GKE.
- Saiba mais sobre os serviços LoadBalancer.