Recomendamos que configure um dos seguintes modos de equilíbrio de carga:
Com o modo agrupado, o Google Distributed Cloud fornece e gere o balanceador de carga. Não tem de obter uma licença para um equilibrador de carga e a quantidade de configuração que tem de fazer é mínima.
Com o modo manual, o Google Distributed Cloud usa um equilibrador de carga à sua escolha, como o F5 BIG-IP ou o Citrix. O modo de equilíbrio de carga manual requer mais configuração do que o modo agrupado.
O equilíbrio de carga manual é suportado para os seguintes tipos de clusters:
Clusters de utilizadores com o Controlplane V2 ativado. Com o Controlplane V2, os nós do plano de controlo de um cluster de utilizador estão no próprio cluster de utilizador.
Clusters de utilizadores que usam o kubeception. O termo kubeception refere-se ao caso em que o plano de controlo de um cluster de utilizador é executado num ou mais nós no cluster de administrador. Se o Controlplane V2 não estiver ativado, um cluster de utilizadores usa o kubeception.
Este documento descreve os passos que tem de seguir se optar por usar o modo de equilíbrio de carga manual.
Neste documento, reserva endereços IP para nós do plano de controlo e nós de trabalho para utilização posterior. Também reserva endereços IP para IPs virtuais (VIPs) e decide sobre os valores de NodePort. A ideia é escolher os endereços IP e os valores NodePort que quer usar e, em seguida, registá-los numa folha de cálculo ou noutra ferramenta. Quando estiver pronto para criar os clusters, precisa dos endereços IP e dos valores NodePort para preencher os ficheiros de configuração do cluster de administrador e do cluster de utilizador, bem como os ficheiros de blocos de IP para os seus clusters.
Também precisa dos endereços IP e dos valores NodePort quando configurar manualmente o balanceador de carga para clusters de utilizadores.
Configure um tipo diferente de balanceador de carga para o plano de controlo
Na versão 1.32 e superior, quando a opção cluster avançado está ativada, pode configurar opcionalmente um tipo diferente de equilibrador de carga para o plano de controlo quando cria um novo cluster. Para mais informações, consulte o seguinte:
- Clusters de administrador:
adminMaster.controlPlaneLoadBalancer
- Grupos de utilizadores:
masterNode.controlPlaneLoadBalancer
Reservar endereços IP de nós
Com o modo de equilíbrio de carga manual, não pode usar o DHCP. Tem de especificar endereços IP estáticos para os nós do cluster. Tem de reservar endereços suficientes para os nós no cluster de administrador e os nós em todos os clusters de utilizador que pretende criar. Para ver detalhes sobre quantos endereços IP de nós deve reservar, consulte os artigos Planeie os seus endereços IP (Controlplane V2) e Planeie os seus endereços IP (kubeception).
Configurar endereços IP
A configuração dos endereços IP estáticos que reservou depende do tipo de cluster e se o Controlplane V2 está ativado nos seus clusters de utilizadores.
Cluster de administrador de HA
A tabela seguinte descreve a finalidade dos endereços IP e onde os configura para clusters de administrador de HA.
IPs estáticos | Configuração |
---|---|
Nós do plano de controlo | Se
o cluster usar domínios de topologia, adicione os endereços IP num
ficheiro de bloco de IP para o
cluster de administrador e adicione o caminho no
campo Se o cluster não usar domínios de topologia, adicione os endereços IP no ficheiro de configuração do cluster de administrador na secção |
1.16 e inferior: nós suplementares | Ficheiro de bloco de IPs do cluster de administrador e adicione o caminho no campo network.ipMode.ipBlockFilePath no ficheiro de configuração do cluster de administrador |
Na versão 1.28 e superior, os novos clusters de administrador de HA não têm nós de suplementos, pelo que não precisa de reservar endereços IP para nós de suplementos como nas versões anteriores.
Cluster de administrador não de HA
A tabela seguinte descreve a finalidade dos endereços IP e onde os configura para clusters de administrador sem HA.
IPs estáticos | Configuração |
---|---|
Nó do plano de controlo | Ficheiro de bloco de IPs do cluster de administrador e adicione o caminho no campo network.ipMode.ipBlockFilePath no ficheiro de configuração do cluster de administrador |
Nós suplementares | Ficheiro de bloqueio de IP do cluster de administrador |
Na versão 1.28 e superior, todos os novos clusters de administrador têm de ser clusters de alta disponibilidade (HA) com 3 nós do plano de controlo.
Cluster de utilizadores do CP V2
A tabela seguinte descreve a finalidade dos endereços IP e onde os configura para clusters de utilizadores com o Controlplane V2 ativado.
IPs estáticos | Configuração |
---|---|
Nós do plano de controlo | Se
o cluster usar domínios de topologia, adicione os endereços IP num
ficheiro de bloco de IP para o
cluster de utilizadores e adicione o caminho no campo
Se o cluster não usar domínios de topologia, adicione os endereços IP no ficheiro de configuração do cluster de utilizadores na secção |
Nós trabalhadores | Ficheiro de bloco de IPs do cluster de utilizadores e adicione o caminho no campo network.ipMode.ipBlockFilePath no ficheiro de configuração do cluster de utilizadores |
Cluster de utilizadores do Kubeception
A tabela seguinte descreve a finalidade dos endereços IP e onde os configura para clusters de utilizadores que usam o kubeception.
IPs estáticos | Configuração |
---|---|
Nós do plano de controlo | Ficheiro de bloco de IPs do cluster de administrador e adicione o caminho no campo network.ipMode.ipBlockFilePath no ficheiro de configuração do cluster de administrador |
Nós trabalhadores | Ficheiro de bloco de IPs do cluster de utilizadores e adicione o caminho no campo network.ipMode.ipBlockFilePath no ficheiro de configuração do cluster de utilizadores |
Na versão 1.30 e superior, o Controlplane V2 é necessário para novos clusters de utilizadores.
Reservar endereços IP para VIPs
Independentemente de usar o modo de equilíbrio de carga integrado, agrupado ou manual, tem de reservar vários endereços IP que pretende usar para IPs virtuais (VIPs) para o equilíbrio de carga. Estes IPs virtuais permitem que os clientes externos alcancem os servidores da API Kubernetes e o seu serviço de entrada nos clusters de utilizadores.
Configure VIPs
O local onde configura os IPs virtuais depende do tipo de cluster.
Cluster de administrador de HA
A tabela seguinte descreve a finalidade do IP virtual e onde o configura para clusters de administrador de HA.
VIP | Configuração |
---|---|
VIP para o servidor da API Kubernetes do cluster de administrador | Ficheiro de configuração do cluster de administrador no campo loadBalancer.vips.controlPlaneVIP |
1.15 e inferior: VIP de suplementos | Ficheiro de configuração do cluster de administrador no campo loadBalancer.vips.addonsVIP |
Tenha em atenção as seguintes diferenças entre versões:
Na versão 1.16 e superior, não precisa de configurar um VIP de suplementos para clusters de administrador de HA.
Na versão 1.28 e superior, os novos clusters de administrador de HA não têm nós de suplementos.
Cluster de administrador não de HA
A tabela seguinte descreve a finalidade do IP virtual e onde o configura para clusters de administrador sem HA.
VIP | Configuração |
---|---|
VIP para o servidor da API Kubernetes do cluster de administrador | Ficheiro de configuração do cluster de administrador no campo loadBalancer.vips.controlPlaneVIP |
1.15 e inferior: VIP de suplementos | Ficheiro de configuração do cluster de administrador no campo loadBalancer.vips.addonsVIP |
Tenha em atenção as seguintes diferenças entre versões:
Na versão 1.16 e superior, não precisa de configurar um VIP de suplementos para clusters de administrador sem HA.
Cluster de utilizadores do CP V2
A tabela seguinte descreve a finalidade dos IPs virtuais e onde os configura para clusters de utilizadores com o Controlplane V2 ativado.
VIPs | Configuração |
---|---|
VIP para o servidor da API Kubernetes do cluster de utilizadores | Ficheiro de configuração do cluster de utilizadores no campo
loadBalancer.vips.controlPlaneVIP |
VIP para o serviço de entrada no cluster de utilizadores | Ficheiro de configuração do cluster de utilizadores no campo
loadBalancer.vips.ingressVIP |
Cluster de utilizadores do Kubeception
A tabela seguinte descreve a finalidade dos VIPs e onde os configura para clusters de utilizadores que usam o kubeception.
VIPs | Configuração |
---|---|
VIP para o servidor da API Kubernetes do cluster de utilizadores | Ficheiro de configuração do cluster de utilizadores no campo
loadBalancer.vips.controlPlaneVIP |
VIP para o serviço de entrada no cluster de utilizadores | Ficheiro de configuração do cluster de utilizadores no campo
loadBalancer.vips.ingressVIP |
Reservar valores de NodePort
No Google Distributed Cloud, o servidor da API Kubernetes e o serviço de entrada são expostos pelos serviços Kubernetes. Com o modo de equilíbrio de carga manual, tem de escolher os seus próprios valores NodePort para estes serviços. Escolha valores no intervalo de 30000 a 32767.
Configure os valores de NodePort
O local onde configura os valores NodePort depende de o cluster de utilizador ter o ControlPlane V2 ativado.
Cluster de administrador de HA
A tabela seguinte descreve a finalidade do NodePort e onde o configura para clusters de administrador de HA.
nodePort |
Configuração |
---|---|
1.15 e inferior: nodePort para nós de suplementos |
Ficheiro de configuração do cluster de administrador no campo loadBalancer.manualLB.addonsNodePort |
Na versão 1.16 e superior, não precisa de configurar um NodePort para nós suplementares para clusters de administrador de HA.
Cluster de administrador não de HA
A tabela seguinte descreve a finalidade dos valores NodePort e onde os configura para clusters de administrador sem HA.
nodePort |
Configuração |
---|---|
1.16 e anteriores: nodePort para o servidor
da API Kubernetes do cluster de administrador |
1.15 e anteriores: ficheiro de configuração do cluster de administrador no campo loadBalancer.vips.controlPlaneNodePort |
1.15 e anteriores: nodePort para nós de suplementos |
Ficheiro de configuração do cluster de administrador no campo loadBalancer.manualLB.addonsNodePort |
Na versão 1.16 e superior, não precisa de configurar um NodePort para nós suplementares para clusters de administrador não HA.
Cluster de utilizadores do CP V2
A tabela seguinte descreve a finalidade dos NodePorts e onde os configura para clusters de utilizadores com o Controlplane V2 ativado. Na versão 1.30 e superior, não precisa de configurar valores para os NodePorts de entrada.
nodePorts |
Configuração |
---|---|
HTTP nodePort para o serviço de entrada no cluster de utilizadores |
Ficheiro de configuração do cluster de utilizadores no
loadBalancer.manualLB.ingressHTTPNodePort |
HTTPS nodePort para o serviço de entrada no cluster de utilizadores |
Ficheiro de configuração do cluster de utilizadores no
loadBalancer.manualLB.ingressHTTPSNodePort |
Cluster de utilizadores do Kubeception
A tabela seguinte descreve a finalidade dos valores NodePort e onde os configura para clusters de utilizadores que usam o kubeception.
nodePort |
Configuração |
---|---|
nodePort para o servidor da API Kubernetes do cluster do utilizador |
Ficheiro de configuração do cluster de utilizadores no campo
loadBalancer.manualLB.controlPlaneNodePort |
nodePort para o servidor Konnectivity do cluster do utilizador (o servidor Konnectivity usa o VIP do plano de controlo) |
Ficheiro de configuração do cluster de utilizadores no campo
loadBalancer.manualLB.konnectivityServerNodePort |
HTTP nodePort para o serviço de entrada no cluster de utilizadores |
Ficheiro de configuração do cluster de utilizadores no
loadBalancer.manualLB.ingressHTTPNodePort |
HTTPS nodePort para o serviço de entrada no cluster de utilizadores |
Ficheiro de configuração do cluster de utilizadores no
loadBalancer.manualLB.ingressHTTPSNodePort |
Exemplo de ficheiro de configuração do cluster
O exemplo seguinte mostra uma parte de um ficheiro de configuração de um cluster de administrador e de utilizador:
Cluster de administrador de HA
Versão 1.16 e superior:
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 requerem um VIP e um NodePort para os nós suplementares.
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 não de HA
Versão 1.16 e superior:
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 inferior requer um VIP e um NodePort para nós suplementares.
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 utilizadores do 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 utilizadores 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
Configure o balanceador de carga
Use a consola de gestão ou as ferramentas do equilibrador de carga para configurar os seguintes mapeamentos no equilibrador de carga. A forma como o faz depende do seu equilibrador de carga.
Cluster de administrador de HA
Tráfego para nós do plano de controlo
A associação que tem de configurar depende de ter ativado os clusters avançados quando cria o cluster de administrador.
Se os clusters avançados não estiverem ativados: O Google Distributed Cloud processa automaticamente o equilíbrio de carga do tráfego do plano de controlo para clusters de administrador de HA. Embora não precise de configurar um mapeamento no equilibrador de carga, tem de especificar um endereço IP no campo
loadBalancer.vips.controlPlaneVIP
.Se os clusters avançados estiverem ativados, tem de configurar o balanceador de carga da seguinte forma:
Especifique um endereço IP no campo
loadBalancer.vips.controlPlaneVIP
.Configure o seguinte mapeamento:
- (
controlPlaneVIP
:443
) -> (CONTROL_PLANE_NODE_IP_ADDRESSES:6433
)
- (
Certifique-se de que a verificação de funcionamento do back-end está configurada corretamente. A verificação de funcionamento tem de usar HTTPS e verificar o ponto final
/readyz
na porta6443
. A verificação de estado tem de confirmar que este ponto final devolve o código de estado200
para considerar o nó como estando em bom estado.
Tráfego para serviços nos nós suplementares
1.15 e anteriores: a imagem seguinte mostra o mapeamento para os endereços IP e os valores NodePort para o tráfego para serviços em nós suplementares:
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Adicione este mapeamento para todos os nós no cluster de administrador, tanto os nós do plano de controlo como os nós de suplementos.
Na versão 1.16 e superior, não precisa de configurar este mapeamento para nós suplementares para clusters de administrador de HA.
Cluster de administrador não de HA
Tráfego do plano de controlo
A imagem seguinte mostra o mapeamento para o endereço IP e o valor NodePort do nó do plano de controlo:
- (
controlPlaneVIP
:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
)
Adicione este mapeamento para todos os nós no cluster de administrador, tanto o nó do plano de controlo como os nós de suplementos.
Tráfego para serviços nos nós suplementares
1.15 e anteriores: a imagem seguinte mostra o mapeamento para os endereços IP e os valores NodePort para serviços executados em nós suplementares:
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Adicione este mapeamento para todos os nós no cluster de administrador, tanto o nó do plano de controlo como os nós de suplementos.
Na versão 1.16 e superior, não precisa de configurar este mapeamento para nós suplementares para clusters de administrador sem HA.
Cluster de utilizadores do CP V2
Tráfego do plano de controlo
O mapeamento que tem de configurar depende de se vai ativar os clusters avançados quando criar o cluster de utilizadores.
Se os clusters avançados não estiverem ativados: O Google Distributed Cloud processa automaticamente o equilíbrio de carga do tráfego do plano de controlo para clusters de utilizadores. Embora não precise de configurar um mapeamento no equilibrador de carga, tem de especificar um endereço IP no campo
loadBalancer.vips.controlPlaneVIP
.Se os clusters avançados estiverem ativados, tem de configurar o balanceador de carga da seguinte forma:
Especifique um endereço IP no campo
loadBalancer.vips.controlPlaneVIP
.Configure o seguinte mapeamento:
- (
controlPlaneVIP
:443
) -> (CONTROL_PLANE_NODE_IP_ADDRESSES:6433
)
- (
Certifique-se de que a verificação de funcionamento do back-end está configurada corretamente. A verificação de funcionamento tem de usar HTTPS e verificar o ponto final
/readyz
na porta6443
. A verificação de estado tem de confirmar que este ponto final devolve o código de estado200
para considerar o nó como estando em bom estado.
Tráfego do plano de dados
O mapeamento que tem de configurar depende de ativar ou não os clusters avançados quando cria o cluster de utilizadores.
Se os clusters avançados não estiverem ativados, siga estes passos antes de criar o cluster:
No ficheiro de configuração do cluster de utilizadores, configure
loadBalancer.vips.ingressVIP
,loadBalancer.manualLB.ingressHTTPNodePort
eloadBalancer.manualLB.ingressHTTPSNodePort
.No equilibrador de carga, configure os mapeamentos de portas para endereços IP para cada NodePort de entrada:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
- (
Se os clusters avançados estiverem ativados, siga estes passos:
Antes de criar o cluster, configure
loadBalancer.vips.ingressVIP
no ficheiro de configuração do cluster de utilizadores. Não precisa de configurar valores para cada NodePort de entrada, uma vez que não têm efeito quando os clusters avançados estão ativados.Depois de criar o cluster, obtenha os valores de cada NodePort de entrada:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n gke-system get service istio-ingress -oyaml
Procure HTTP e HTTPS na secção de portas na especificação do serviço e anote os valores de NodePort.
No equilibrador de carga, configure os mapeamentos de portas para endereços IP para cada NodePort de entrada:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
- (
Em ambos os casos, adicione estes mapeamentos para todos os nós do plano de controlo e nós de trabalho no cluster de utilizador. Uma vez que configurou NodePorts no cluster, o Kubernetes abre os NodePorts em todos os nós do cluster. Esta configuração permite que qualquer nó no cluster processe o tráfego do plano de dados.
Depois de configurar os mapeamentos, o balanceador de carga fica a aguardar tráfego no endereço IP que configurou para o VIP de entrada do cluster de utilizadores nas portas HTTP e HTTPS padrão. O balanceador de carga encaminha os pedidos para qualquer nó no cluster. Depois de um pedido ser encaminhado para um dos nós do cluster, a rede Kubernetes interna assume o controlo e encaminha o pedido para o pod de destino.
Cluster de utilizadores do Kubeception
Tráfego do plano de controlo
A tabela seguinte mostra o mapeamento para os endereços IP e os valores NodePort para o tráfego do plano de controlo:
- (
controlPlaneVIP
:443
) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
) - (
controlPlaneVIP
:8132
) -> (NODE_IP_ADDRESSES:konnectivityServerNodePort
)
Adicione este mapeamento para todos os nós no cluster admin, tanto o cluster de administrador como os nós do plano de controlo do cluster de utilizador.
Tráfego do plano de dados
A tabela seguinte mostra o mapeamento para os endereços IP e os valores NodePort para o tráfego do plano de dados:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
Adicione estes mapeamentos para todos os nós no cluster de utilizadores. Com os clusters de utilizadores através do kubeception, todos os nós no cluster são nós de trabalho.
Repor associações a nós com falhas (recomendado)
Além dos requisitos anteriores, recomendamos que configure o equilibrador de carga para repor as ligações do cliente quando detetar uma falha do nó de back-end. Sem esta configuração, os clientes do servidor da API Kubernetes podem deixar de responder durante vários minutos quando uma instância do servidor fica inativa, o que pode causar instabilidade no plano de controlo do Kubernetes.
- Com o F5 BIG-IP, esta definição denomina-se Action On Service Down na página de configuração do conjunto de back-end.
- Com o HAProxy, esta definição é denominada on-marked-down shutdown-sessions na configuração do servidor de back-end.
- Se estiver a usar um equilibrador de carga diferente, deve consultar a documentação para encontrar a definição equivalente.
Receber apoio técnico para o balanceamento de carga manual
A Google não oferece apoio técnico para equilibradores de carga configurados através do modo de equilíbrio de carga manual. Se tiver problemas com o equilibrador de carga, contacte o fornecedor do equilibrador de carga.