Configurar o modo de rede do balanceamento de carga

Neste documento, descrevemos os dois modos de rede do Dataplane V2 para balanceamento de carga e como ativá-los para o GKE em Bare Metal. Antes do GKE na versão Bare Metal 1.16.0, o modo de rede do Dataplane V2 para balanceamento de carga não é configurável. O Dataplane V2 era compatível apenas com balanceamento de carga de conversão de endereços de rede de origem (SNAT). Com as versões de cluster 1.16.0 e mais recentes, é possível configurar o modo de rede de balanceamento de carga como SNAT (padrão) ou retorno direto do servidor (DSR, na sigla em inglês) ao criar um cluster.

Balanceamento de carga SNAT

A conversão de endereços de rede de origem (SNAT, na sigla em inglês) é o modo de rede padrão para o balanceamento de carga do Dataplane V2. No entanto, no modo SNAT, o endereço IP do cliente não é preservado para pods de back-end. Quando o pacote do cliente chega ao nó do balanceador de carga, ele é convertido e encaminhado para o nó de trabalho de destino com o pod de back-end. O pod de back-end vê que a solicitação vem do nó do balanceador de carga, e não do local do cliente. Como resultado, a resposta é retornada ao nó do balanceador de carga e revertida, traduzida e enviada de volta ao cliente.

Fluxo de pacotes para SNAT

Com o modo de rede SNAT para balanceamento de carga Dataplane V2, veja o fluxo de pacotes de um cliente externo para um pod de back-end e vice-versa:

  • O serviço do tipo LoadBalancer é atribuído ao nó do balanceador de carga, e o endereço IP dele 172.16.20.16 é anunciado pelo alto-falante do MetalLB em execução nesse nó.

  • O Dataplane V2 converte o endereço IP e a porta de origem com SNAT para <LB_NODE_IP>:52000 e encaminha o pacote para o nó de trabalho.

  • A resposta é enviada de volta ao nó do balanceador de carga, e o endereço de destino é convertido inversamente.

O diagrama a seguir mostra o fluxo de pacotes para o modo SNAT:

Fluxo de pacotes para balanceamento de carga do Dataplane V2 no modo SNAT

Balanceamento de carga DSR

O retorno do servidor direto (DSR, na sigla em inglês) resolve problemas com o balanceamento de carga SNAT. No modo DSR, o nó do balanceador de carga usa opções de IP para salvar o endereço de origem do cliente. O nó de trabalho pode recuperar o pacote original e encaminhá-lo ao pod de back-end. O pod de back-end pode ver que o pacote vem do endereço IP do cliente em vez do endereço IP do nó do balanceador de carga. Como resultado, o pacote de retorno retorna diretamente ao endereço IP do cliente em vez de viajar de volta ao nó do balanceador de carga.

Esse modo não apenas resolve o problema de visibilidade do endereço IP do cliente, como também economiza a largura de banda para o nó do balanceador de carga. O tráfego de retorno não precisa passar pelo nó do balanceador de carga, e o nó do balanceador de carga não precisa mais fazer o rastreamento de conexão. Essa abordagem economiza memória e libera a porta de encaminhamento. Para cargas de trabalho assimétricas, em que o tráfego de download é muito maior do que o de solicitação, o fluxo de DSR reduz a largura de banda significativamente.

Fluxo de pacotes para DSR

Com o modo de rede DSR para balanceamento de carga Dataplane V2, veja o fluxo de pacotes de um cliente externo para um pod de back-end e vice-versa:

  • O serviço do tipo LoadBalancer é atribuído ao nó do balanceador de carga, e o endereço IP dele 172.16.20.16 é anunciado pelo alto-falante do MetalLB em execução nesse nó.

  • O Dataplane V2 encaminha o pacote para o nó de trabalho e usa as opções de IP para salvar a porta e o endereço IP da origem do cliente original.

  • O Dataplane V2 no nó de trabalho encaminha o pacote ao pod de back-end.

  • O pod de back-end recupera o endereço IP e a porta de origem e responde ao cliente.

O diagrama a seguir mostra o fluxo de pacotes para o modo DSR:

Fluxo de pacotes para balanceamento de carga do Dataplane V2 no modo SNAT

Limitação de DSR

A DSR é compatível somente com o modo de não túnel, o que significa que o modelo de rede de modo simples precisa ser ativado. Para instruções sobre como ativar o modelo de rede de modo simples, consulte Implementar o modelo de rede de modo IPv4 simples. Se o modelo de rede de modo simples não estiver ativado, a verificação de simulação falhará se você tentar ativar a DSR.

Ativar modo DSR

Conforme observado anteriormente, o modo SNAT é ativado por padrão. Para ativar o modo DSR, adicione a seguinte anotação ao arquivo de configuração do cluster antes de criar o cluster. Durante a visualização, esse recurso usa uma anotação preview.baremetal.cluster.gke.io/dpv2-lbmode-dsr: enable para ativar o modo DSR. Para desativar o modo DSR, remova a anotação ou defina-a como disable. Outros valores não são aceitos e geram erros de validação.

apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: bm
  namespace: cluster-bm
  annotations:
    preview.baremetal.cluster.gke.io/dpv2-lbmode-dsr: enable  # valid options: enable or disable
spec:
...

O valor não pode ser modificado após a criação do cluster. Verifique se você configurou a opção correta para suas necessidades antes de criar o cluster.