Como ativar o modo de balanceamento de carga manual

Os clusters do Anthos GKE On-Prem (GKE On-Prem) podem ser executados com um dos três modos de balanceamento de carga: integrado, em pacote ou manual. No modo integrado, um cluster do GKE On-Prem usa o balanceador de carga F5 BIG-IP. Com o modo agrupado, o GKE On-Prem fornece e gerencia o balanceador de carga. Você não precisa ter uma licença de balanceador de carga, e a quantidade de configuração que você precisa fazer é mínima. No modo manual, o GKE On-Prem usa outro balanceador de carga que você escolher. O modo de balanceamento de carga manual requer mais configurações que o 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 é um balanceador de carga de exemplo que pode ser usado com o modo de balanceamento de carga manual.

Para instruções sobre como usar o F5 BIG-IP com o modo de balanceamento de carga manual, consulte Como instalar o F5 BIG-IP ADC para o GKE On-Prem usando o balanceamento de carga manual.

Neste tópico, você separa os endereços IP e os valores nodePort para uso posterior. 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 você usar o modo de balanceamento de carga integrado, em pacote ou manual, é necessário separar vários endereços IP virtuais (VIPs, na sigla em inglês) que você pretende usar no 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 separar VIPs, consulte Como separar 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 os nós em todos os clusters de usuários que você pretende criar. Para ver detalhes sobre quantos endereços IP de nós serão alocados, consulte Como configurar IPs 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, ajuste-os para mais tarde ao modificar o arquivo de configuração do cluster.

Escolha e separe os seguintes valores nodePort.

  • Para cada VIP que você definiu para um servidor da API Kubernetes, separe 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. Isso se aplica apenas ao cluster de usuários.

  • Para cada VIP reservado para um serviço de complemento de cluster, reserve um valor nodePort. Isso se aplica apenas ao cluster de administrador.

Por exemplo, suponha que você pretenda ter dois clusters de usuário e queira usar complementos. 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.

  • 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.

Portanto, no exemplo anterior, você precisaria definir oito valores nodePort.

Como modificar o arquivo de configuração do GKE On-Prem

Prepare um arquivo de configuração para cada cluster: o cluster de administrador e o cluster de usuário.

  • Defina loadBalancer.kind como ManualLB.

  • Defina network.ipMode como static

  • Defina network.ipBlockFilePath como o caminho do arquivo YAML de IP estático do cluster. Isso é documentado em Como configurar IPs estáticos. O DHCP não é uma opção para o modo de balanceamento de carga manual.

  • Atualize o campo loadBalancer.manualLB com os valores nodePort que você escolheu para o cluster.

No exemplo a seguir, mostramos uma parte de um arquivo de configuração atualizado:

network:
  ipMode:
    type: static
    ipBlockFilePath: "ipblock1.yaml"
loadBalancer:
  kind: ManualLB
  manualLB:
    ingressHTTPNodePort: 30243
    ingressHTTPSNodePort: 30879
    controlPlaneNodePort: 30562:
    addonsnodeport: 31405

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 os VIPs:

  • O plano de controle do cluster para clusters de administrador e de usuário, na porta TCP 443
  • O gerenciador de complementos para o cluster de administrador, se usado, na porta TCP 8443
  • 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 e 192.168.0.12.

Depois de configurar 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ários. Neste exemplo, suponha que o endereço do nó seja 192.168.0.11. O balanceador de carga encaminha a solicitação para 192.168.0.11 na porta TCP 32676. As regras iptables 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ários. Neste exemplo, suponha que o endereço do nó seja 192.168.0.10. O balanceador de carga encaminha a solicitação para 192.168.0.10 na porta TCP 32677. As regras do 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 do balanceador de carga.

A seguir

Resolver problemas

Para mais informações, consulte Solução de problemas.