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