Recomendamos que você configure um dos seguintes modos de balanceamento de carga:
No modo em pacote, o Google Distributed Cloud fornece e gerencia o balanceador de carga. Você não precisa ter uma licença de balanceador de carga, e a configuração necessária é mínima.
No modo manual, o Google Distributed Cloud usa o balanceador de carga que você escolher, como F5 Big-IP ou Citrix. O modo de balanceamento de carga manual exige que você faça mais configurações do que no modo em pacote.
O balanceamento de carga manual é compatível com os seguintes tipos de cluster:
Clusters de usuário com o Controlplane V2 ativado. Com o plano de controle V2, os nós do plano de controle de um cluster de usuário ficam no próprio cluster.
Clusters de usuário que usam o kubeception. O termo kubeception se refere ao caso em que o plano de controle de um cluster de usuário é executado em um ou mais nós no cluster de administrador. Se o Controlplane V2 não estiver ativado, um cluster de usuário usará o kubeception.
Nesta página, descrevemos as etapas que você precisa seguir se optar por usar o modo de balanceamento de carga manual.
Neste tópico, você reserva endereços IP para nós do plano de controle e
nós de trabalho para uso posterior. Você também reserva endereços IP para IPs virtuais (VIPs) e decide valores nodePort
. A ideia é que você escolha os endereços IP e os valores nodePort
que quer usar e os registre em uma planilha ou em alguma outra ferramenta. Quando estiver pronto para criar os clusters,
você precisará dos endereços IP e dos valores nodePort
para preencher os
arquivos de configuração do
cluster de administrador
e do
cluster de usuário, além
dos arquivos de bloco de IP dos clusters.
Você também precisará dos endereços IP e dos valores nodePort
ao configurar
manualmente o balanceador de carga para clusters de usuário.
Como reservar endereços IP de nós
Com o modo de balanceamento de carga manual, não é possível usar o DHCP. Especifique endereços IP estáticos para os nós do cluster. Você precisa reservar endereços suficientes para os nós no cluster de administrador e para os nós em todos os clusters de usuários que pretende criar. Para detalhes sobre quantos endereços IP de nó precisam ser reservados, consulte Planejar seus endereços IP (Controlplane V2) e Planejar seus endereços IP (kubeception).
Configurar endereços IP
O local para configurar os endereços IP estáticos que você reservou depende do tipo de cluster e se o Controlplane V2 está ativado nos clusters de usuário.
Cluster de administrador de alta disponibilidade
A tabela a seguir descreve para que servem os endereços IP e onde você os configura para clusters de administrador de alta disponibilidade.
IPs estáticos | Configuração |
---|---|
Nós do plano de controle | Arquivo de configuração do cluster de administrador na
seção network.controlPlaneIPBlock.ips |
1.16 e anteriores: nós de complementos | Arquivo de bloco de IP do cluster
de administrador e adicione o caminho no
campo network.ipMode.ipBlockFilePath do
arquivo de configuração do cluster de administrador |
Na versão 1.28 e mais recentes, os novos clusters de administrador de alta disponibilidade não têm nós complementares. Portanto, não é necessário reservar endereços IP para nós de complementos como nas versões anteriores.
Cluster de administrador que não é de alta disponibilidade
A tabela a seguir descreve para que servem os endereços IP e onde você os configura para clusters de administrador que não são de alta disponibilidade.
IPs estáticos | Configuração |
---|---|
Nó do plano de controle | Arquivo de bloco de IP do cluster
de administrador e adicione o caminho no
campo network.ipMode.ipBlockFilePath do
arquivo de configuração do cluster de administrador |
Nós de complementos | Arquivo de bloco de IP do cluster de administrador |
Na versão 1.28 e mais recentes, todos os novos clusters de administrador precisam ser clusters de alta disponibilidade (HA) com três nós do plano de controle.
Cluster de usuário CP V2
A tabela a seguir descreve para que servem os endereços IP e onde você os configura para clusters de usuário com o Controlplane V2 ativado.
IPs estáticos | Configuração |
---|---|
Nós do plano de controle | Arquivo de configuração do cluster de usuário na
seção network.controlPlaneIPBlock.ips |
Nós de trabalho | Arquivo de bloco de IP do cluster de usuário e adicione o caminho no campo network.ipMode.ipBlockFilePath do arquivo de configuração do cluster de usuário |
Cluster de usuário do Kubeception
A tabela a seguir descreve para que servem os endereços IP e onde você os configura para clusters de usuário que usam o kubeception.
IPs estáticos | Configuração |
---|---|
Nós do plano de controle | Arquivo de bloco de IP do cluster
de administrador e adicione o caminho no
campo network.ipMode.ipBlockFilePath do
arquivo de configuração do cluster de administrador |
Nós de trabalho | Arquivo de bloco de IP do cluster de usuário e adicione o caminho no campo network.ipMode.ipBlockFilePath do arquivo de configuração do cluster de usuário |
Como separar endereços IP para VIPs
Independentemente de você usar o modo de balanceamento de carga integrado, em pacote ou manual, é necessário reservar vários endereços IP que você pretende usar para IPs virtuais (VIPs) para balanceamento de carga. Esses VIPs permitem que clientes externos alcancem os servidores da API Kubernetes e seu serviço de entrada nos clusters de usuários.
Configurar VIPs
O local de configuração dos VIPs depende do tipo de cluster.
Cluster de administrador de alta disponibilidade
A tabela a seguir descreve para que serve o VIP e onde você o configura para clusters de administrador de alta disponibilidade.
VIP | Configuração |
---|---|
VIP para o servidor da API Kubernetes do cluster de administrador | Arquivo de configuração do cluster de administrador no
campo loadBalancer.vips.controlPlaneVIP |
1.15 e anterior: VIP de complementos | Arquivo de configuração do cluster de administrador no
campo loadBalancer.vips.addonsVIP |
Observe as seguintes diferenças nas versões:
Na versão 1.16 e mais recentes, não é necessário configurar um VIP de complementos para clusters de administrador de alta disponibilidade.
Nas versões 1.28 e mais recentes, os novos clusters de administrador de alta disponibilidade não têm nós complementares.
Cluster de administrador que não é de alta disponibilidade
A tabela a seguir descreve para que serve o VIP e onde você o configura para clusters de administrador que não são de alta disponibilidade.
VIP | Configuração |
---|---|
VIP para o servidor da API Kubernetes do cluster de administrador | Arquivo de configuração do cluster de administrador no
campo loadBalancer.vips.controlPlaneVIP |
1.15 e anterior: VIP de complementos | Arquivo de configuração do cluster de administrador no
campo loadBalancer.vips.addonsVIP |
Observe as seguintes diferenças nas versões:
Na versão 1.16 e mais recentes, não é necessário configurar um VIP de complementos para clusters de administrador que não são de alta disponibilidade.
Cluster de usuário CP V2
A tabela a seguir descreve para que servem os VIPs e onde você os configura para clusters de usuário com o Controlplane V2 ativado.
VIPs | Configuração |
---|---|
VIP para o servidor da API Kubernetes do cluster de usuário | Arquivo de configuração do cluster de usuário no
campo loadBalancer.vips.controlPlaneVIP |
VIP para o serviço de entrada no cluster de usuário | Arquivo de configuração do cluster de usuário no
campo loadBalancer.vips.ingressVIP |
Cluster de usuário do Kubeception
A tabela a seguir descreve para que servem os VIPs e onde você os configura para clusters de usuário que usam kubeception.
VIPs | Configuração |
---|---|
VIP para o servidor da API Kubernetes do cluster de usuário | Arquivo de configuração do cluster de usuário no
campo loadBalancer.vips.controlPlaneVIP |
VIP para o serviço de entrada no cluster de usuário | Arquivo de configuração do cluster de usuário no
campo loadBalancer.vips.ingressVIP |
Como reservar valores nodePort
No Google Distributed Cloud, o servidor da API Kubernetes e o serviço de entrada são
expostos pelos Serviços do Kubernetes.
Com o modo de balanceamento de carga manual, você precisa escolher os próprios valores nodePort
para
esses Serviços. Escolha valores no intervalo 30000 - 32767.
Configurar os valores de nodePort
O local para configurar os valores de nodePort
depende de o cluster de usuário ter
o ControlPlane V2 ativado.
Cluster de administrador de alta disponibilidade
A tabela a seguir descreve para que serve o nodePort
e onde você
o configura para clusters de administrador de alta disponibilidade.
nodePort |
Configuração |
---|---|
1.15 e anterior: nodePort para nós de complementos |
Arquivo de configuração do cluster de administrador no
campo loadBalancer.manualLB.addonsNodePort |
Na versão 1.16 e mais recentes, não é necessário configurar um nodePort
para
nós de complemento para clusters de administrador de alta disponibilidade.
Cluster de administrador que não é de alta disponibilidade
A tabela a seguir descreve para que servem os valores de nodePort
e onde você
os configura para clusters de administrador que não são de alta disponibilidade.
nodePort |
Configuração |
---|---|
1.16 e anteriores: nodePort para o servidor da API Kubernetes
do cluster de administrador |
1.15 e anteriores: arquivo de configuração do cluster de administrador no
campo loadBalancer.vips.controlPlaneNodePort |
1.15 e anteriores: nodePort para nós de complementos |
Arquivo de configuração do cluster de administrador no
campo loadBalancer.manualLB.addonsNodePort |
Na versão 1.16 e mais recentes, não é necessário configurar um nodePort
para
nós complementares de clusters de administrador que não são de alta disponibilidade.
Cluster de usuário CP V2
A tabela a seguir descreve para que servem os nodePorts
e onde você
os configura para clusters de usuário com o Controlplane V2 ativado.
nodePorts |
Configuração |
---|---|
HTTP nodePort para o serviço de entrada no cluster
de usuário |
Arquivo de configuração do cluster de usuário no
loadBalancer.manualLB.ingressHTTPNodePort |
HTTPS nodePort para o serviço de entrada no cluster
de usuário |
Arquivo de configuração do cluster de usuário no
loadBalancer.manualLB.ingressHTTPSNodePort |
Não é necessário configurar um nodePort
para o VIP do plano de controle porque
o Google Distributed Cloud processa o balanceamento de carga para os nós do plano de controle
para clusters de usuário com o Controlplane V2 ativado.
Cluster de usuário do Kubeception
A tabela a seguir descreve para que servem os valores nodePort
e onde você
os configura para clusters de usuário que usam kubeception.
nodePort |
Configuração |
---|---|
nodePort para o servidor da API Kubernetes do cluster de
usuário |
Arquivo de configuração do cluster de usuário no
campo loadBalancer.manualLB.controlPlaneNodePort |
nodePort para o servidor Konnectivity do cluster de usuário (o servidor Konnectivity usa o VIP do plano de controle) |
Arquivo de configuração do cluster de usuário no
campo loadBalancer.manualLB.konnectivityServerNodePort |
HTTP nodePort para o serviço de entrada no cluster
de usuário |
Arquivo de configuração do cluster de usuário no
loadBalancer.manualLB.ingressHTTPNodePort |
HTTPS nodePort para o serviço de entrada no cluster
de usuário |
Arquivo de configuração do cluster de usuário no
loadBalancer.manualLB.ingressHTTPSNodePort |
Exemplo de arquivo de configuração de cluster
O exemplo a seguir mostra uma parte de um arquivo de configuração de cluster de administrador e usuário:
Cluster de administrador de alta disponibilidade
Versão 1.16 e mais recentes:
network: controlPlaneIPBlock: netmask: "255.255.248.0" gateway: "21.0.143.254" ips: - ip: "21.0.140.226" hostname: "admin-cp-vm-1" - ip: "21.0.141.48" hostname: "admin-cp-vm-2" - ip: "21.0.141.65" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" kind: ManualLB
A versão 1.15 e anteriores exigem um VIP e
nodeport
para nós complementares.network: controlPlaneIPBlock: netmask: "255.255.248.0" gateway: "21.0.143.254" ips: - ip: "21.0.140.226" hostname: "admin-cp-vm-1" - ip: "21.0.141.48" hostname: "admin-cp-vm-2" - ip: "21.0.141.65" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" addonsVIP: "203.0.113.4" kind: ManualLB manualLB: addonsNodePort: 31405
Cluster de administrador que não é de alta disponibilidade
Versão 1.16 e mais recentes:
network: ipMode: type: static ipBlockFilePath: "ipblock-admin.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" kind: ManualLB manualLB: controlPlaneNodePort: 30562
A versão 1.15 e anteriores exigem um VIP e
nodeport
para nós complementares.network: ipMode: type: static ipBlockFilePath: "ipblock-admin.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" addonsVIP: "172.16.21.41" kind: ManualLB manualLB: controlPlaneNodePort: 30562 addonsNodePort: 30563
Cluster de usuário CP V2
network:
ipMode:
type: static
ipBlockFilePath: "ipblock1.yaml"
controlPlaneIPBlock:
netmask: "255.255.255.0"
gateway: "172.16.21.1"
ips:
- ip: "172.16.21.6"
hostname: "cp-vm-1"
- ip: "172.16.21.7"
hostname: "cp-vm-2"
- ip: "172.16.21.8"
hostname: "cp-vm-3"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
ingressVIP: "172.16.21.30"
kind: ManualLB
manualLB:
ingressHTTPNodePort: 30243
ingressHTTPSNodePort: 30879
Cluster de usuário do Kubeception
network:
ipMode:
type: static
ipBlockFilePath: "ipblock1.yaml"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
ingressVIP: "172.16.21.30"
kind: ManualLB
manualLB:
ingressHTTPNodePort: 30243
ingressHTTPSNodePort: 30879
konnectivityServerNodePort: 30563
controlPlaneNodePort: 30562
Configurar seu balanceador de carga
Use as ferramentas ou o console de gerenciamento do balanceador de carga para configurar os seguintes mapeamentos no balanceador de carga. A maneira de fazer isso depende do seu balanceador de carga.
Cluster de administrador de alta disponibilidade
Tráfego para nós do plano de controle
O Google Distributed Cloud gerencia automaticamente o balanceamento de carga do tráfego do plano
de controle para clusters de administrador de alta disponibilidade. Embora não seja necessário configurar um mapeamento
no balanceador de carga, é preciso especificar um endereço IP no
campo loadBalancer.vips.controlPlaneVIP
.
Tráfego para serviços nos nós do complemento
1.15 e anteriores: a seguir, mostramos o mapeamento para os endereços IP e
os valores nodePort
do tráfego para serviços nos nós complementares:
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Adicione esse mapeamento para todos os nós no cluster de administrador, tanto os nós do plano de controle quanto os nós de complementos.
Na versão 1.16 e mais recentes, não é necessário configurar esse mapeamento para nós complementares de clusters de administrador de alta disponibilidade.
Cluster de administrador que não é de alta disponibilidade
Tráfego do plano de controle
Veja a seguir o mapeamento para o endereço IP e o valor nodePort
do
nó do plano de controle:
- (
controlPlaneVIP
:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
)
Adicione esse mapeamento para todos os nós no cluster de administrador, tanto o nó do plano de controle quanto os nós de complementos.
Tráfego para serviços nos nós do complemento
1.15 e anteriores: veja a seguir o mapeamento para os endereços IP e
os valores nodePort
para serviços em execução nos nós complementares:
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Adicione esse mapeamento para todos os nós no cluster de administrador, tanto o nó do plano de controle quanto os nós de complementos.
Na versão 1.16 e mais recentes, não é necessário configurar esse mapeamento para nós complementares de clusters de administrador que não são de alta disponibilidade.
Cluster de usuário CP V2
Tráfego do plano de controle
O Google Distributed Cloud processa automaticamente o balanceamento de carga do tráfego do plano de controle
para clusters de usuário com o Controlplane V2 ativado. Embora não seja
necessário configurar um mapeamento no balanceador de carga, é preciso especificar um endereço
IP no campo loadBalancer.vips.controlPlaneVIP
.
Tráfego do plano de dados
Veja a seguir o mapeamento para os endereços IP e os valores nodePort
do tráfego do plano de dados:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
Adicione esses mapeamentos para todos os nós no cluster de usuário, tanto os nós do plano de controle quanto os nós de trabalho. Como você configurou o NodePorts no cluster, o Kubernetes abre os NodePorts em todos os nós do cluster. Isso permite que qualquer nó no cluster lide com o tráfego do plano de dados.
Depois de configurar os mapeamentos, o balanceador de carga detectará o tráfego no endereço IP que você configurou para o VIP de entrada do cluster de usuário nas portas HTTP e HTTPS padrão. O balanceador de carga encaminha solicitações para qualquer nó no cluster. Depois que uma solicitação é encaminhada para um dos nós do cluster, a rede interna do Kubernetes assume e encaminha a solicitação para o pod de destino.
Cluster de usuário do Kubeception
Tráfego do plano de controle
Veja a seguir o mapeamento para os endereços IP e os valores nodePort
do
tráfego do plano de controle:
- (
controlPlaneVIP
:443
) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
) - (
controlPlaneVIP
:8132
) -> (NODE_IP_ADDRESSES:konnectivityServerNodePort
)
Adicione esse mapeamento para todos os nós no cluster admin, tanto o cluster de administrador quanto os nós do plano de controle do cluster de usuário.
Tráfego do plano de dados
Veja a seguir o mapeamento para os endereços IP e os valores nodePort
do tráfego do plano de dados:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
Adicione esses mapeamentos para todos os nós no cluster de usuário. Com clusters de usuário que usam o kubeception, todos os nós são de trabalho.
Como redefinir conexões com nós com falha (recomendado)
Além dos requisitos anteriores, recomendamos que você configure o balanceador de carga para que redefina as conexões do cliente quando detectar uma falha no nó de back-end. Sem essa configuração, os clientes do servidor da API Kubernetes podem parar de responder por vários minutos quando uma instância do servidor é interrompida, o que pode causar instabilidade no plano de controle do Kubernetes.
- Com a F5 BIG-IP, essa configuração é chamada de "Ação no serviço inativo" na página de configuração do pool de back-end.
- Com o HAProxy, essa configuração é chamada de "on-marked-down shutdown-sessions" na configuração do servidor de back-end.
- Se você estiver usando um balanceador de carga diferente, consulte a documentação para encontrar a configuração equivalente.
Como receber suporte para balanceamento de carga manual
O Google não oferece suporte para balanceadores de carga configurados usando o modo de balanceamento de carga manual. Se você encontrar problemas com o balanceador de carga, entre em contato com o fornecedor.
A seguir
- Balanceamento de carga com Citrix
- Como instalar o ADC F5 BIG-IP para o GKE no VMware usando balanceamento de carga manual