Ce document décrit les deux modes de mise en réseau Dataplane V2 pour l'équilibrage de charge et explique comment les activer pour GKE sur une solution Bare Metal. Avant la version 1.16.0 de GKE sur Bare Metal, le mode de mise en réseau Dataplane V2 pour l'équilibrage de charge n'était pas configurable. Dataplane V2 n'accepte que l'équilibrage de charge SNAT (traduction d'adresse réseau source). Avec les versions de cluster 1.16.0 et ultérieures, vous pouvez configurer le mode réseau d'équilibrage de charge sur SNAT (par défaut) ou sur retour direct du serveur (DSR) lorsque vous créez un cluster.
Équilibrage de charge SNAT
La traduction d'adresse réseau source (SNAT) est le mode réseau par défaut pour l'équilibrage de charge Dataplane V2. Toutefois, en mode SNAT, l'adresse IP cliente n'est pas conservée pour les pods de backend. Lorsque le paquet provenant du client arrive au nœud d'équilibreur de charge, il est traduit et transféré vers le nœud de calcul de destination avec le pod de backend. Le pod de backend voit que la requête provient du nœud de l'équilibreur de charge, et non de l'emplacement du client. La réponse est donc renvoyée au nœud de l'équilibreur de charge, traduite et renvoyée au client.
Flux de paquets pour SNAT
Avec le mode de mise en réseau SNAT pour l'équilibrage de charge Dataplane V2, voici le flux de paquets entre un client externe et un pod de backend:
Le service de type LoadBalancer est attribué au nœud de l'équilibreur de charge, et son adresse IP
172.16.20.16
est annoncée par le haut-parleur MetalLB exécuté sur ce nœud.Dataplane V2 traduit l'adresse IP et le port source avec SNAT en
<LB_NODE_IP>:52000
, puis transfère le paquet au nœud de calcul.La réponse est renvoyée au nœud de l'équilibreur de charge, et l'adresse de destination est traduite en sens inverse.
Le schéma suivant illustre le flux de paquets pour le mode SNAT:
Équilibrage de charge DSR
Le retour direct du serveur (DSR) permet de résoudre les problèmes liés à l'équilibrage de charge SNAT. En mode DSR, le nœud d'équilibreur de charge utilise des options IP pour enregistrer l'adresse source du client. Le nœud de calcul peut récupérer le paquet d'origine et le transférer au pod de backend. Le pod de backend peut voir que le paquet provient de l'adresse IP du client et non de l'adresse IP du nœud de l'équilibreur de charge. Par conséquent, le paquet renvoyé renvoie directement à l'adresse IP du client au lieu de revenir au nœud de l'équilibreur de charge.
Ce mode résout non seulement le problème de visibilité de l'adresse IP client, mais il permet également d'économiser la bande passante pour le nœud de l'équilibreur de charge. Le trafic de retour ne doit pas nécessairement passer par le nœud d'équilibreur de charge, et le nœud de l'équilibreur de charge n'a plus besoin d'effectuer le suivi des connexions. Cette approche permet d'économiser de la mémoire et de libérer le port de transfert. Pour les charges de travail asymétriques, où le trafic de téléchargement est beaucoup plus élevé que le trafic de requête, le flux DSR réduit considérablement la bande passante.
Flux de paquets pour DSR
Avec le mode de mise en réseau DSR pour l'équilibrage de charge Dataplane V2, voici le flux de paquets depuis un pod externe vers un pod de backend, et inversement:
Le service de type LoadBalancer est attribué au nœud de l'équilibreur de charge, et son adresse IP
172.16.20.16
est annoncée par le haut-parleur MetalLB exécuté sur ce nœud.Dataplane V2 transfère le paquet au nœud de calcul et utilise les options IP pour enregistrer l'adresse IP et le port source du client d'origine.
Dataplane V2 sur le nœud de calcul transfère le paquet au pod de backend.
Le pod de backend récupère l'adresse IP et le port sources, et répond au client.
Le schéma suivant illustre le flux de paquets pour le mode DSR:
Limitation du DSR
Un DSR n'est compatible qu'avec le mode hors tunnel, ce qui signifie que le modèle de réseau en mode plat doit être activé. Pour obtenir des instructions sur l'activation du modèle de réseau en mode plat, consultez Mettre en œuvre un modèle de réseau en mode IPv4 plat. Si le modèle de réseau en mode plat n'est pas activé, la vérification préliminaire devrait échouer si vous essayez d'activer le DSR.
Activer le mode DSR
Comme indiqué précédemment, le mode SNAT est activé par défaut. Pour activer le mode DSR, ajoutez l'annotation suivante à votre fichier de configuration de cluster avant de créer votre cluster. En preview, cette fonctionnalité utilise une annotation preview.baremetal.cluster.gke.io/dpv2-lbmode-dsr: enable
pour activer le mode DSR.
Pour désactiver le mode DSR, supprimez l'annotation ou définissez-la sur disable
. Les autres valeurs ne sont pas acceptées et génèrent des erreurs de validation.
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:
...
La valeur ne peut plus être modifiée une fois le cluster créé. Assurez-vous d'avoir configuré l'option adaptée à vos besoins avant de créer le cluster.