Como ativar o modo de balanceamento de carga manual

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, você configura manualmente um balanceador de carga diferente. Por exemplo, você pode configurar manualmente o balanceador de carga do Citrix ou o balanceador de carga do Seesaw.

O modo de balanceamento de carga manual requer mais configuração do que o modo integrado. Nesta página, descrevemos as etapas que você precisa seguir para o modo manual.

Limitações

O uso do balanceamento de carga manual tem as seguintes limitações:

  • Não é possível usar o DHCP para atribuir endereços IP a nós de cluster. Você precisa atribuir endereços IP de nó estático.

  • Não é possível expor serviços do tipo LoadBalancer a clientes fora do cluster. No entanto, é possível criar serviços do tipo NodePort e configurar manualmente seu balanceador de carga para usá-los como back-ends. Você também pode expor seus serviços usando objetos Ingress.

  • Se você adicionar ou excluir nós do cluster, será necessário configurar manualmente seu balanceador de carga.

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

Reservar seus endereços IP

Cada cluster criado tem três ou mais VMs, chamadas de nós. Reserve um endereço IP para cada nó nos clusters que você pretende criar. Por exemplo, se você pretende criar um cluster de administrador com quatro nós e um cluster de usuário com três nós, reserve sete endereços IP para nós. Configure seus roteadores para que todos os endereços IP do nó sejam roteáveis.

Você também precisa reservar os seguintes VIPs para balanceamento de carga:

  • VIP para o plano de controle do administrador (porta exposta: TCP 443)
  • VIP para o controlador de entrada do cluster de administrador (portas expostas: TCP 80, TCP 443)
  • VIP para o gerenciador de complementos (porta exposta: TCP 8443)
  • VIP para o plano de controle do usuário (porta exposta: TCP 443)
  • VIP para o controlador de entrada do cluster de usuário (portas expostas: TCP 80, TCP 443)

Reservar portas de nó

O GKE On-Prem usa objetos do Kubernetes Service do tipo NodePort para rotear o tráfego para pods.

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 controlador de entrada do seu cluster de usuário. Suponha também que você tenha feito as seguintes escolhas:

  • 203.0.113.5 é o VIP para o controlador 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.

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ó 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 (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ó 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.

Você não precisa criar os objetos de serviço para seus VIPs. O GKE On-Prem faz isso para você. No entanto, para cada par (porta VIP, TCP), você precisa escolher e especificar o seguinte:

  • Um conjunto de endereços IP de nó
  • Um valor nodePort.

É necessário reservar sete valores nodePort:

  • nodePort para o plano de controle do cluster de administrador, porta TCP 443
  • nodePort para o controlador de entrada do cluster de administrador, porta TCP 80
  • nodePort para o controlador de entrada do cluster de administrador, porta TCP 443
  • nodePort para o gerenciador de complementos, a porta TCP 8443
  • nodePort para o plano de controle do usuário, a porta TCP 80
  • nodePort para o controlador de entrada de cluster de usuário, porta TCP 80
  • nodePort para o controlador de entrada de cluster de usuário, porta TCP 443

Modificar o arquivo de configuração do GKE On-Prem

Ao instalar o GKE On-Prem, você gera um arquivo de configuração. Você precisa modificar as seções a seguir no arquivo de configuração:

  • Defina lbmode como Manual.

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

  • 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 valores nodePort que você escolheu para o cluster de administrador.

  • Atualize a seção usercluster:manuallbspec com os valores nodePort 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.

Primeiro, verifique se o cluster de administrador e o cluster de usuário têm pools de endereço IP diferentes.

Como mencionado anteriormente, é necessário 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

A seguir

Solução de problemas

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