Configura la modalità di networking per il bilanciamento del carico

Questo documento descrive le due modalità di networking Dataplane V2 per il bilanciamento del carico e come abilitarle per GKE su Bare Metal. Prima di GKE su Bare Metal release 1.16.0, la modalità di networking Dataplane V2 per il bilanciamento del carico non era configurabile. Dataplane V2 supportava solo il bilanciamento del carico SNAT (Network Address Translation). Con il cluster versione 1.16.0 e successive, puoi configurare la modalità di rete di bilanciamento del carico su SNAT (predefinita) o Direct Server Return (DSR) quando crei un cluster.

Bilanciamento del carico SNAT

Network Address Translation di origine (SNAT) è la modalità di rete predefinita per il bilanciamento del carico di Dataplane V2. Tuttavia, in modalità SNAT, l'indirizzo IP del client non viene conservato per i pod di backend. Quando il pacchetto del client arriva al nodo del bilanciatore del carico, viene tradotto e inoltrato al nodo worker di destinazione con il pod di backend. Il pod di backend vede che la richiesta proviene dal nodo del bilanciatore del carico, anziché dalla posizione del client. Di conseguenza, la risposta viene restituita al nodo del bilanciatore del carico, poi convertita e inviata al client.

Flusso dei pacchetti per SNAT

Con la modalità di networking SNAT per il bilanciamento del carico Dataplane V2, ecco il flusso di pacchetti da un client esterno a un pod di backend e viceversa:

  • Il servizio di tipo LoadBalancer è assegnato al nodo del bilanciatore del carico e il suo indirizzo IP 172.16.20.16 è pubblicizzato dall'altoparlante MetalLB in esecuzione su tale nodo.

  • Dataplane V2 converte l'indirizzo IP di origine e la porta con SNAT in <LB_NODE_IP>:52000 e inoltra il pacchetto al nodo worker.

  • La risposta viene inviata al nodo del bilanciatore del carico e l'indirizzo di destinazione viene tradotto in modo inversa.

Il seguente diagramma mostra il flusso dei pacchetti per la modalità SNAT:

Flusso dei pacchetti per il bilanciamento del carico Dataplane V2 in modalità SNAT

Bilanciamento del carico DSR

Direct Server Return (DSR) risolve i problemi con il bilanciamento del carico SNAT. In modalità DSR, il nodo del bilanciatore del carico utilizza le opzioni IP per salvare l'indirizzo di origine del client. Il nodo worker può recuperare il pacchetto originale e inoltrarlo al pod di backend. Il pod di backend può vedere che il pacchetto proviene dall'indirizzo IP del client anziché dall'indirizzo IP del nodo del bilanciatore del carico. Di conseguenza, il pacchetto di ritorno torna direttamente all'indirizzo IP del client invece di tornare al nodo del bilanciatore del carico.

Questa modalità non solo risolve il problema di visibilità dell'indirizzo IP del client, ma consente anche di risparmiare larghezza di banda per il nodo del bilanciatore del carico. Il traffico di ritorno non deve passare attraverso il nodo del bilanciatore del carico e quest'ultimo non deve più eseguire il monitoraggio delle connessioni. Questo approccio consente di risparmiare memoria e liberare la porta di forwarding. Per i carichi di lavoro asimmetrici, dove il traffico di download è molto più elevato di quello delle richieste, il flusso DSR riduce significativamente la larghezza di banda.

Flusso dei pacchetti per DSR

Con la modalità di networking DSR per il bilanciamento del carico Dataplane V2, ecco il flusso di pacchetti da un client esterno a un pod di backend e viceversa:

  • Il servizio di tipo LoadBalancer è assegnato al nodo del bilanciatore del carico e il suo indirizzo IP 172.16.20.16 è pubblicizzato dall'altoparlante MetalLB in esecuzione su tale nodo.

  • Dataplane V2 inoltra il pacchetto al nodo worker e utilizza le opzioni IP per salvare l'indirizzo IP e la porta di origine del client originali.

  • Dataplane V2 sul nodo worker inoltra il pacchetto al pod di backend.

  • Il pod di backend recupera l'indirizzo IP e la porta di origine e risponde al client.

Il seguente diagramma mostra il flusso dei pacchetti per la modalità DSR:

Flusso dei pacchetti per il bilanciamento del carico Dataplane V2 in modalità SNAT

Limitazione DSR

La tecnologia DSR è supportata solo per la modalità non tunnel, il che significa che il modello di rete in modalità flat deve essere abilitato. Per istruzioni sull'abilitazione del modello di rete in modalità flat, consulta Implementare il modello di rete in modalità IPv4 stabile. Se il modello di rete in modalità flat non è abilitato, il controllo preflight non dovrebbe riuscire se tenti di attivare la modalità DSR.

Attiva modalità DSR

Come indicato in precedenza, la modalità SNAT è attivata per impostazione predefinita. Per attivare la modalità DSR, aggiungi la seguente annotazione al file di configurazione del cluster prima di creare il cluster. In anteprima, questa funzionalità utilizza un'annotazione preview.baremetal.cluster.gke.io/dpv2-lbmode-dsr: enable per attivare la modalità DSR. Per disattivare la modalità DSR, rimuovi l'annotazione o impostala su disable. Altri valori non sono accettati e generano errori di convalida.

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

Il valore non può essere modificato dopo la creazione del cluster. Assicurati di aver configurato l'opzione corretta per le tue esigenze prima di creare il cluster.