Como ativar o modo de balanceamento de carga manual

10

Os clusters do Anthos em clusters do VMware (GKE On-Prem) podem ser executados com um dos três modos de balanceamento de carga: integrado, em pacote ou manual. Com o modo integrado, os clusters do Anthos no cluster do VMware usam o balanceador de carga F5 BIG-IP. Com o modo empacotado, os clusters do Anthos no VMware fornecem e gerenciam 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, os clusters do Anthos no VMware usam um balanceador de carga diferente escolhido por você. 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.

  • VIP para o serviço complementar de agregação de registros, que é executado no 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

Em clusters do Anthos no VMware, o servidor da API Kubernetes, o serviço de entrada e o serviço complementar de 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