Os clusters do GKE no VMware podem ser executados com um dos três modos de balanceamento de carga: integrado, em pacote ou manual.
No modo integrado, o GKE no VMware usa o balanceador de carga F5 BIG-IP.
No modo de pacote, o GKE na VMware 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 GKE no VMware usa o balanceador de carga que você escolher. O modo de balanceamento de carga manual requer mais configurações que o modo integrado. O balanceador de carga Citrix é um exemplo de balanceador de carga que pode ser usado com o modo de balanceamento de carga manual.
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. Embora você não precise
configurar o balanceamento de carga para clusters de administrador de alta disponibilidade 1.28 e mais recentes, para
completude, este tópico descreve a configuração de endereços IP para os nós do
plano de controle e o VIP do plano de controle para clusters de administrador de alta disponibilidade.
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 |
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 |
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 GKE no VMware, 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
Você não precisa configurar nodePorts
para clusters de administrador 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 GKE no VMware 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
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
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
O GKE no VMware 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
.
Cluster de usuário CP V2
Tráfego do plano de controle
O GKE no VMware gerencia 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