Esta página oferece uma vista geral de como o Google Kubernetes Engine (GKE) cria e gere o Cloud Load Balancing. Esta página pressupõe que tem conhecimentos sobre o seguinte:
- Tipos de Google Cloud balanceadores de carga
- A diferença entre os balanceadores de carga da camada 4 (balanceadores de carga de rede) e da camada 7 (balanceadores de carga de aplicações)
Esta página destina-se a arquitetos da nuvem e especialistas em redes que concebem e arquitetam a rede para a respetiva organização. Para saber mais sobre as funções comuns e as tarefas de exemplo que referimos no conteúdo, consulte o artigo Funções e tarefas comuns de utilizadores do GKE Enterprise. Google Cloud
Como o GKE cria balanceadores de carga
Para tornar as suas aplicações acessíveis a partir do exterior do cluster (utilizadores externos) ou na sua rede privada (utilizadores internos), pode expor as suas aplicações aprovisionando equilibradores de carga através das APIs Gateway, Ingress e Service. Em alternativa, pode criar os componentes do balanceador de carga manualmente, enquanto o GKE gere os grupos de pontos finais de rede (NEGs) que ligam o balanceador de carga aos pods no cluster.
Gateway
O controlador do GKE Gateway é a implementação da Google da API Gateway do Kubernetes para o Cloud Load Balancing. A API Gateway é um projeto de código aberto destinado a padronizar a forma como as malhas de serviços e os controladores de entrada expõem aplicações no Kubernetes. Foi concebido para ser um sucessor mais expressivo, flexível e extensível do recurso Ingress.
O controlador do GKE Gateway é usado para configurar balanceadores de carga de aplicações da camada 7 para expor tráfego HTTP(S) a aplicações que são executadas no cluster.
Use a API Gateway para implementar o seu equilibrador de carga.
Entrada
O controlador de entrada do GKE é a implementação da Google da API Ingress. A API Ingress permite-lhe gerir o acesso externo a serviços executados num cluster. Quando cria um recurso Ingress no GKE, o controlador configura automaticamente um equilibrador de carga de aplicações da camada 7 que permite que o tráfego HTTP ou HTTP(S) alcance as suas aplicações executadas no cluster.
O GKE Gateway é a escolha recomendada para novas implementações e aplicações que requerem gestão de tráfego avançada, suporte de vários protocolos ou melhor multi-inquilino. No entanto, o GKE Ingress é uma opção viável para cenários de encaminhamento HTTP/HTTPS mais simples, especialmente para configurações existentes em que as vantagens da migração para a API Gateway ainda podem não compensar o esforço.
Serviços LoadBalancer
A API Service permite-lhe
expor aplicações que são executadas como pods no seu cluster ao tráfego
externo ou interno. Quando cria um serviço do tipo LoadBalancer
, o GKE cria automaticamente um balanceador de carga de rede de passagem de camada 4 (TCP/UDP) com base nos parâmetros do manifesto do serviço.
Nos equilibradores de carga de rede de passagem, quando o tráfego atinge as suas VMs de back-end, os endereços IP de origem e de 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. Isto significa que o tráfego é transmitido diretamente para as VMs ou os pods de back-end e que o balanceador de carga não termina as ligações. Os serviços de back-end processam a rescisão das ligações e garantem que o tráfego flui sem problemas do cliente para o serviço.
Balanceamento de carga ponderado
Se configurou um serviço LoadBalancer externo ao qual os clientes fora da sua rede VPC e as Google Cloud VMs podem aceder, pode ativar o balanceamento de carga ponderado. O equilíbrio de carga ponderado distribui o tráfego com base no número de pods de publicação em cada nó do GKE, para que os nós com mais pods de publicação recebam uma proporção maior de tráfego em comparação com os nós com menos pods.
Grupos de pontos finais de rede autónomos
Outro método para gerir os balanceadores de carga no GKE é criar os componentes do balanceador de carga e permitir que o GKE faça a gestão dos NEGs. Este tipo de balanceador de carga é denominado balanceador de carga de rede de proxy. Os NEGs são uma forma de representar grupos de pontos finais de back-end (por exemplo, pods) para o equilíbrio de carga.
Este tipo de equilibrador de carga destina-se 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 noutros ambientes de nuvem. O tráfego é terminado na camada de balanceamento de carga. Em seguida, o equilibrador de carga encaminha o tráfego estabelecendo novas ligações TCP para o back-end disponível mais próximo.
O que é o balanceamento de carga nativa do contentor?
O balanceamento de carga nativo do contentor é a prática de distribuir uniformemente o tráfego diretamente para os endereços IP de Pods individuais (em vez de nós) através dos NEGs GCE_VM_IP_PORT
. GCE_VM_IP_PORT
Os NEGs permitem-lhe especificar pontos finais de back-end através do endereço IP interno principal de uma máquina virtual (VM) do Compute Engine ou de um endereço IP de um dos intervalos de IPs de alias configurados da VM.
O balanceamento de carga nativa do contentor é usado para todos os balanceadores de carga da camada 7 geridos pelo GKE, incluindo o Gateway e o Ingress, e os NEGs autónomos. Os serviços LoadBalancer não usam o balanceamento de carga nativa do contentor. No entanto, pode alcançar uma capacidade semelhante ativando o balanceamento de carga ponderado.
O balanceamento de carga nativa do contentor tem várias vantagens, incluindo um melhor desempenho da rede e verificações de estado melhoradas, porque segmenta diretamente os pods. Para mais informações, consulte o artigo Balanceamento de carga nativa do contentor.
Tabelas de resumo
Use as tabelas seguintes para ajudar a planear a configuração do equilíbrio de carga.
Escolha um tipo de balanceador de carga
A tabela seguinte mostra o tipo de balanceador de carga criado para um determinado recurso (Gateway, Ingress ou LoadBalancer Service):
Recurso do Kubernetes | Tipo de balanceador de carga criado | |
---|---|---|
Balanceador de carga de aplicações | Balanceador de carga de rede de passagem | |
Gateway | ||
Entrada | ||
Serviço LoadBalancer |
Escolha um método para criar um balanceador de carga
A tabela seguinte mostra as opções no GKE para criar o equilibrador de carga escolhido:
Tipo de balanceador de carga | Métodos para criar o balanceador de carga escolhido | |||
---|---|---|---|---|
Gateway | Entrada | Serviço LoadBalancer | Grupos de pontos finais de rede autónomos | |
Balanceador de carga de aplicações externo global | ||||
Balanceador de carga de aplicações externo clássico | ||||
Balanceador de carga de aplicações externo regional | ||||
Balanceador de carga de aplicações interno regional | ||||
Balanceador de carga de aplicações interno entre regiões | ||||
Balanceador de carga de rede de proxy
(todos os tipos) |
||||
Balanceador de carga de rede de passagem
(interno e externo) |
O que se segue?
- Saiba mais sobre a API Gateway no GKE.
- Saiba mais sobre o GKE Ingress.
- Saiba mais acerca dos serviços LoadBalancer.