Os clusters do GKE On-Prem podem ser executados com um dos dois modos de balanceamento de carga: integrado ou manual. Com o modo integrado, os clusters do GKE On-Prem são executados com o balanceador de carga F5 BIG-IP. Com o modo manual, é possível usar o balanceador de carga F5 BIG-IP ou qualquer outro balanceador de carga de sua escolha. O modo de balanceamento de carga manual exige que você faça mais configurações do que no modo integrado. Nesta página, descrevemos as etapas que você precisa seguir se optar por usar o modo de balanceamento de carga manual.
O balanceador de carga Citrix e o balanceador de carga Seesaw são exemplos de balanceadores de carga que podem ser usados com o modo de balanceamento de carga manual.
Neste tópico, você reserva os endereços IP e os valores nodePort
para usar no futuro. A
ideia é que você escolha os endereços IP e os valores nodePort
que quer
usar para o balanceamento de carga e para os nós do cluster. Mas você não faz nada
com os endereços e valores nodePort
neste momento. Mais tarde, quando estiver pronto para
instalar o GKE On-Prem, você precisará dos endereços e
valores nodePort
para preencher o arquivo de configuração do cluster. Você também
precisará dos endereços e dos valores nodePort
ao configurar manualmente o
balanceador de carga.
Como separar endereços IP virtuais
Independentemente de usar o modo de balanceamento de carga integrado ou manual, você precisará reservar vários endereços IP virtuais (VIPs, na sigla em inglês) que pretende usar para o balanceamento de carga. Esses VIPs permitem que clientes externos alcancem os servidores da API Kubernetes, os serviços de entrada e os serviços complementares. Para instruções detalhadas sobre como reservar VIPs, consulte Como reservar endereços IP virtuais.
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 saber quantos endereços IP de nó precisam ser reservados, consulte Como configurar endereços IP estáticos.
Como reservar valores nodePort
Em um cluster do GKE On-Prem, o servidor da API Kubernetes, o serviço de entrada e
o serviço de complemento são implementados como
serviços do Kubernetes do tipo NodePort
.
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. Depois de escolher os
valores de nodePort
, reserve-os para mais tarde quando modificar o arquivo de configuração
do cluster.
Escolha e reserve os seguintes valores nodePort
.
Para cada VIP que você reservou para um servidor da API Kubernetes, reserve um valor
nodePort
.Para cada VIP reservado para um serviço de entrada de cluster, reserve dois valores
nodePort
: um para tráfego HTTP e outro para tráfego HTTPS.Para cada VIP reservado para um serviço de complemento de cluster, reserve um valor
nodePort
.
Por exemplo, suponha que você pretenda ter dois clusters de usuário e usar
complementos em todos os clusters. Você precisaria escolher e reservar os
seguintes valores de nodePort
:
Um valor
nodePort
para o servidor da API Kubernetes no cluster de administrador.Para cada um dos dois clusters de usuário, um valor
nodePort
para o servidor da API Kubernetes.Um valor
nodePort
para o tráfego HTTP para o serviço de entrada no cluster de administrador.Um valor
nodePort
para o tráfego HTTPS para o serviço de entrada no cluster de administrador.Para cada um dos dois clusters de usuário, um valor
nodePort
para o tráfego HTTP para o serviço de entrada.Para cada um dos dois clusters de usuário, um valor
nodePort
para o tráfego HTTPS para o serviço de entrada.Um valor
nodePort
para o serviço de complemento no cluster de administrador.Para cada um dos dois clusters de usuário, um valor
nodePort
para o servidor de complementos.
Portanto, no exemplo anterior, você precisaria definir 11 valores nodePort
.
Como modificar o arquivo de configuração do GKE On-Prem
Ao instalar o GKE On-Prem, você gera um arquivo de configuração. Para o modo de balanceamento de carga manual, faça as modificações a seguir no arquivo de configuração:
Defina
lbmode
comoManual
.Defina
admincluster.ipblockfilepath
como o caminho do arquivo YAML de IP estático para o cluster de administrador. Isso é documentado em Como configurar IPs estáticos. O DHCP não é uma opção para o modoManual
.Defina
usercluster.ipblockfilepath
como o caminho do arquivo YAML de IP estático do cluster de usuário.Atualize o campo
admincluster.manuallbspec
com os valoresnodePort
que você escolheu para o cluster de administrador.Atualize a seção
usercluster.manuallbspec
com os valoresnodePort
escolhidos para o cluster de usuário.
No exemplo a seguir, mostramos uma parte de um arquivo de configuração atualizado:
... lbmode: Manual ... admincluster: ipblockfilepath: "ipblock1.yaml" manuallbspec: ingresshttpnodeport: 32527 ingresshttpsnodeport: 30139 controlplanenodeport: 30968 addonsnodeport: 31405 ... usercluster: ipblockfilepath: "env/default/ipblock2.yaml" manuallbspec: ingresshttpnodeport: 30243 ingresshttpsnodeport: 30879 controlplanenodeport: 30562
Configurar seu balanceador de carga
Agora que você atualizou o arquivo de configuração, faça login no console de gerenciamento do balanceador de carga e configure seus VIPs.
Como mencionado anteriormente, é preciso configurar cinco VIPs e sete portas. Assim, crie sete serviços virtuais no seu balanceador de carga:
- Plano de controle do cluster de administrador, porta TCP 443
- Controlador de entrada do cluster de administrador, porta TCP 80
- Controlador de entrada do cluster de administrador, porta TCP 443
- Gerenciador de complementos, porta TCP 8443
- Plano de controle do usuário, porta TCP 80
- Controlador de entrada do cluster de usuário, porta TCP 80
- Controlador de entrada do cluster de usuário, porta TCP 443
Exemplo de balanceamento de carga
Um serviço tem um campo ports
, que é uma matriz de
objetos
ServicePort. Em um serviço do tipo NodePort
, cada objeto ServicePort tem um
protocol
, um port
, um nodePort
e um targetPort
. Por exemplo, veja
parte de um manifesto para um Serviço que tem dois objetos ServicePort na respectiva
matriz ports
:
... kind: Service ... spec: ... type: NodePort ports: - protocol: TCP port: 80 nodePort: 32676 targetPort: 8080 - protocol: TCP port: 443 nodePort: 32677 targetPort: 443 ...
Suponha que o Serviço anterior represente o serviço de entrada de um dos clusters de usuário. Suponha também que você tenha feito as seguintes escolhas:
203.0.113.5
é o VIP para o serviço de entrada do cluster de usuário.Os endereços do nó para o cluster de usuário são
192.168.0.10
,192.168.0.11
e192.168.0.12
.
Configurado o balanceador de carga, o tráfego é roteado da seguinte maneira:
Um cliente envia uma solicitação para
203.0.113.5
na porta TCP 80. O balanceador de carga escolhe um nó de cluster de usuário. Neste exemplo, suponha que o endereço do nó seja192.168.0.11
. O balanceador de carga encaminha a solicitação para192.168.0.11
na porta TCP 32676. As regras iptables (em inglês) no nó encaminham a solicitação para um pod apropriado na porta TCP 8080.Um cliente envia uma solicitação para
203.0.113.5
na porta TCP 443. O balanceador de carga escolhe um nó de cluster de usuário. Neste exemplo, suponha que o endereço do nó seja192.168.0.10
. O balanceador de carga encaminha a solicitação para192.168.0.10
na porta TCP 32677. As regras de iptables no nó encaminham a solicitação para um pod apropriado na porta TCP 443.
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
Solução de problemas
Para mais informações, consulte Solução de problemas.