Configura la modalità di inoltro del bilanciamento del carico

Questo documento descrive le due modalità di inoltro di Dataplane V2 per il bilanciamento del carico e come attivarle per Google Distributed Cloud. Dataplane V2 supporta due modi di inoltro per il bilanciamento del carico:

  • Network Address Translation (SNAT) di origine
  • Direct Server Return (DSR)

La modalità di inoltro per il bilanciamento del carico può essere configurata solo quando crei un cluster.

Bilanciamento del carico SNAT

La Network Address Translation dell'origine (SNAT) è la modalità di inoltro 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 dal client arriva al caricamento viene tradotto e inoltrato al nodo worker di destinazione con il pod di backend. Il pod di backend rileva che la richiesta proviene dal nodo del bilanciatore del carico anziché dalla posizione del client. Di conseguenza, la risposta è al nodo del bilanciatore del carico e invertiti, quindi tradotti e restituiti di alto profilo.

Flusso di pacchetti per SNAT

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

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

  • Dataplane V2 traduce l'indirizzo IP e la porta di origine 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 alla destinazione viene tradotto inverso.

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

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

Bilanciamento del carico DSR

Direct Server Return (DSR) supera i problemi di 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 backend all'interno del pod. Il pod di backend può vedere che il pacchetto proviene dall'indirizzo IP del client anziché l'indirizzo IP del nodo del bilanciatore del carico. Di conseguenza, il pacchetto di ritorno viene restituito direttamente all'indirizzo IP del client anziché tornare al nodo del bilanciatore del carico.

Questa modalità non solo risolve il problema di visibilità degli indirizzi IP del client, ma la larghezza di banda per il nodo del bilanciatore del carico. Il traffico di ritorno non deve necessariamente attraversano il nodo del bilanciatore del carico, che non deve eseguire il monitoraggio della connessione. Questo approccio consente di risparmiare memoria e libera la porta di inoltro. Per i carichi di lavoro asimmetrici, in cui il traffico in download è molto più elevato rispetto al traffico delle richieste, il flusso DSR riduce notevolmente la larghezza di banda.

Flusso di pacchetti per DSR

Con la modalità di forwarding DSR per il bilanciamento del carico di Dataplane V2, ecco il flusso dei 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 ai suoi L'indirizzo IP 172.16.20.16 è pubblicizzato dallo speaker MetalLB in esecuzione su su quel nodo.

  • Dataplane V2 inoltra il pacchetto al nodo worker e utilizza le opzioni IP per salvare la porta e l'indirizzo IP 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 di pacchetti per la modalità DSR:

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

Attiva modalità DSR

Per attivare la modalità DSR, aggiungi il spec.clusterNetwork.forwardMode campo al file di configurazione del cluster e impostalo su dsr. Come indicato in precedenza, la modalità SNAT è attiva per impostazione predefinita. Puoi specificare la modalità SNAT in modo esplicito impostando forwardMode su snat. La modalità di forwarding per il bilanciamento del carico di Dataplane V2 può solo al momento della creazione del cluster.

apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: lb-mode
  namespace: cluster-lb-mode
  ...
spec:

  clusterNetwork:
    forwardMode: dsr # valid options are dsr or snat
    pods:
      cidrBlocks:
      - 192.168.0.0/16
    services:
      cidrBlocks:
      - 10.96.0.0/20
...

Il valore forwardMode 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.