Como ativar o modo de balanceamento de carga manual

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 GR-IP. Com o modo de pacote, o GKE no VMware fornece e gerencia o balanceador de carga. Não é necessário ter uma licença de balanceador de carga e a configuração que você precisa fazer é mínima. Com o modo manual, o GKE no VMware usa um balanceador de carga diferente da sua escolha. 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.

Neste tópico, você reserva 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 tudo pronto para criar os clusters, você precisará dos endereços e valores nodePort para preencher o arquivo de configuração do cluster do administrador e o arquivo de configuração do cluster de usuário. Você também precisará dos endereços e dos valores nodePort ao configurar manualmente o balanceador de carga.

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 Como criar um cluster de administrador e Como criar um cluster de usuário.

Como separar endereços IP virtuais

Independentemente de usar o modo de balanceamento de carga integrado, em pacote 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 acessem os servidores da API Kubernetes, o serviço de entrada e o serviço complementar para integração de registros.

Separe os seguintes VIPs:

  • VIP para o servidor da API Kubernetes do cluster de administrador. No arquivo de configuração do cluster de administrador, ele é chamado de controlPlaneVIP.

  • O VIP para os complementos do Prometheus e do Grafana executados no cluster de administrador. Os clusters de usuário usam esse VIP para a comunicação de métricas com o cluster de administrador. No arquivo de configuração do cluster de administrador, ele é chamado de addonsVIP.

  • Para cada cluster de usuário que você pretende criar, um VIP para o servidor da API Kubernetes do cluster de usuário. No arquivo de configuração do cluster de usuário, ele é chamado de controlPlaneVIP.

  • Para cada cluster de usuário que você pretende criar, um VIP para o serviço de entrada no cluster de usuário. No arquivo de configuração do cluster de usuário, ele é chamado de ingressVIP.

Como reservar valores nodePort

No GKE no VMware, o servidor da API Kubernetes, o serviço de entrada e o serviço de complemento para agregação de registros 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. Depois de escolher os valores nodePort, reserve-os para mais tarde quando preencher os arquivos de configuração do cluster.

Escolha e reserve os seguintes valores nodePort.

  • Para o VIP que você reservou para o servidor da API Kubernetes do cluster de administrador, reserve um valor nodePort.

  • Para o VIP reservado para o serviço complementar, reserve um valor nodePort.

  • Para cada VIP que você reservou para servidores da API Kubernetes de clusters de usuários, reserve um valor nodePort.

  • Para cada VIP reservado para o serviço de entrada de um cluster de usuário, reserve dois valores nodePort: um para tráfego HTTP e outro para tráfego HTTPS.

Por exemplo, suponha que você queira ter um cluster de administrador e dois clusters de usuário. Você precisa escolher e reservar os seguintes valores nodePort:

  • Um valor nodePort para o servidor da API Kubernetes do cluster de administrador.

  • Um valor nodePort para o serviço complementar 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.

Portanto, no exemplo anterior, você precisa reservar oito valores nodePort.

Como preencher os arquivos de configuração do cluster

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

Em cada arquivo de configuração do cluster:

  • Defina loadBalancer.kind como ManualLB.

  • Defina network.ipMode como static.

  • Defina network.ipBlockFilePath como o caminho do arquivo de bloco de IPs do cluster.

  • Atualize a seção loadBalancer.manualLB com os valores nodePort que você escolheu para o cluster.

O seguinte exemplo mostra uma parte de um arquivo de configuração de cluster de usuário:

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

Configurar seu balanceador de carga

Cluster de administrador

No arquivo de configuração do cluster de administrador, você preencheu o seguinte:

  • loadBalancer.vips.controlPlaneVIP
  • loadBalancer.vips.addonsVIP
  • loadBalancer.manualLB.controlPlaneNodePort
  • loadBalancer.manualLB.addonsNodePort
  • network.ipMode.ipBlockFilePath

No arquivo de bloco de IPs do cluster de administrador, você preencheu uma lista de endereços IP estáticos que serão usados nos nós do cluster de administrador.

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 balanceador de carga:

  • (controlPlaneVIP:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort)

  • (addonsVIP:8443) -> (NODE_IP_ADDRESSES:addonsNodewPort)

Cluster de usuário

Nos arquivos de configuração do cluster de usuário, você preencheu o seguinte:

  • loadBalancer.vips.controlPlaneVIP
  • loadBalancer.vips.ingressVIP
  • loadBalancer.manualLB.controlPlaneNodePort
  • loadBalancer.manualLB.konnectivityServerNodePort
  • loadBalancer.manualLB.ingressHTTPNodePort
  • loadBalancer.manualLB.ingressHTTPSNodePort
  • network.ipMode.ipBlockFilePath

No arquivo de bloco de IPs do seu cluster de usuário, você preencheu uma lista de endereços IP estáticos que serão usados nos nós do cluster de usuário.

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 balanceador de carga:

  • (controlPlaneVIP:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort)

  • (controlPlaneVIP:8132) -> (NODE_IP_ADDRESSES:konnectivityServerNodePort)

  • (ingressVIP:80) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort)

  • (ingressVIP:443) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort)

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