Lors de l'utilisation de vSphere with Tanzu avec une mise en réseau vDS, HAProxy assure l'équilibrage de charge pour les développeurs accédant au plan de contrôle de Tanzu Kubernetes, et pour les services Kubernetes de type équilibrage de charge. Examinez les topologies possibles que vous pouvez mettre en œuvre pour l'équilibrage de charge HAProxy.
Réseaux de charge de travail sur le Cluster superviseur
Pour configurer un Cluster superviseur avec la pile de mise en réseau vSphere, vous devez connecter tous les hôtes du cluster à un commutateur vSphere Distributed Switch. En fonction de la topologie que vous mettez en œuvre pour les réseaux de charge de travail du Cluster superviseur, vous créez un ou plusieurs groupes de ports distribués. Désignez les groupes de ports comme réseaux de charge de travail pour les Espaces de noms vSphere.
Avant d'ajouter un hôte à un Cluster superviseur, vous devez l'ajouter à tous les commutateurs vSphere Distributed Switch qui font partie du cluster.
Les machines virtuelles du plan de contrôle Kubernetes sur le Cluster superviseur utilisent trois adresses IP de la plage d'adresses IP qui est attribuée au réseau de charge de travail principal. Chaque nœud d'un cluster Tanzu Kubernetes dispose d'une adresse IP distincte attribuée à partir de la plage d'adresses du réseau de charge de travail qui est configuré avec l'espace de noms dans lequel le cluster Tanzu Kubernetes s'exécute.
Allocation de plages d'adresses IP
- Plage d'allocation d'adresses IP virtuelles pour HAProxy. La plage d'adresses IP que vous configurez pour les serveurs virtuels de HAProxy est réservée par le dispositif d'équilibrage de charge. Par exemple, si la plage d'adresses IP virtuelles est
192.168.1.0/24
, tous les hôtes de cette plage ne sont pas accessibles pour tout trafic autre que le trafic IP virtuel.Note : Vous ne devez pas configurer une passerelle avec la plage d'adresses IP virtuelles HAProxy, car toutes les routes vers cette passerelle vont échouer. - Plage d'adresses IP pour les nœuds des clusters Cluster superviseur et Tanzu Kubernetes. Chaque machine virtuelle du plan de contrôle Kubernetes dans le Cluster superviseur dispose d'une adresse IP attribuée, ce qui donne trois adresses IP au total. Une adresse IP distincte est également attribuée à chaque nœud d'un cluster Tanzu Kubernetes. Vous devez attribuer une plage d'adresses IP unique à chaque réseau de charge de travail sur le Cluster superviseur que vous configurez sur un espace de noms.
Exemple de configuration avec un réseau /24 :
- Réseau : 192.168.120.0/24
- Adresses IP virtuelles HAProxy : 192.168.120.128/25
- 1 adresse IP pour l'interface de charge de travail HAProxy : 192.168.120.5
En fonction des adresses IP libres parmi les 128 premières adresses, vous pouvez définir des plages d'adresses IP pour les réseaux de charge de travail sur le Cluster superviseur, par exemple :
- 192.168.120.31-192.168.120.40 pour le réseau de charge de travail principal
- 192.168.120.51-192.168.120.60 pour un autre réseau de charge de travail
Topologie réseau HAProxy
Il existe deux options de configuration réseau pour le déploiement de HAProxy : Par défaut et Frontal. Le réseau par défaut comporte 2 cartes réseau : une pour le réseau de gestion et une autre pour le réseau de charge de travail. Le réseau frontal dispose de 3 cartes réseau : réseau de gestion, réseau de charge de travail et réseau frontal pour les clients. Le tableau répertorie et décrit les caractéristiques de chaque réseau.
Réseau | Caractéristiques |
---|---|
Gestion |
Le cluster superviseur utilise le réseau de gestion pour se connecter à l'équilibrage de charge HAProxy et le programmer.
|
Charge de travail |
La machine virtuelle du plan de contrôle HAProxy utilise le réseau de charge de travail pour accéder aux services sur le cluster superviseur et sur les nœuds du cluster Tanzu Kubernetes.
Note : Le réseau de charge de travail doit se trouver sur un sous-réseau différent du réseau de gestion. Consultez la
configuration système requise.
|
Configuration Frontale (facultatif) | Les clients externes (tels que les utilisateurs ou les applications) accédant aux charges de travail du cluster utilisent le réseau frontal pour accéder aux services avec équilibrage de charge du serveur principal à l'aide d'adresses IP virtuelles.
|
Le diagramme ci-dessous illustre un déploiement HAProxy à l'aide d'une topologie réseau frontal. Le diagramme indique où les champs de configuration sont attendus pendant le processus d'installation et de configuration.
Topologie de Cluster superviseur avec un réseau de charge de travail et HAProxy avec deux cartes réseau virtuelles
Dans cette topologie, vous configurez un Cluster superviseur avec un réseau de charge de travail pour les composants suivants :
- Machines virtuelles de plan de contrôle Kubernetes
- Nœuds de clusters Tanzu Kubernetes.
- Plage d'adresses IP virtuelles HAProxy où les services externes et les utilisateurs DevOps se connectent. Dans cette configuration, HAProxy est déployé avec deux cartes réseau virtuelles (configuration Par défaut), une connectée au réseau de gestion et une seconde connectée au réseau de charge de travail principal. Vous devez planifier l'allocation d'adresses IP virtuelles sur un sous-réseau distinct du réseau de charge de travail principal.
- L'utilisateur DevOps ou le service externe envoie le trafic à une adresse IP virtuelle sur le sous-réseau du réseau de la charge de travail du groupe de ports distribués.
- HAProxy équilibre la charge du trafic IP virtuel vers l'adresse IP du nœud Tanzu Kubernetes ou l'adresse IP de la machine virtuelle du plan de contrôle. HAProxy réclame l'adresse IP virtuelle afin de pouvoir équilibrer la charge du trafic en provenance de cette adresse IP.
- La machine virtuelle du plan de contrôle ou le nœud de cluster Tanzu Kubernetes fournit le trafic aux espaces cibles s'exécutant dans le cluster Cluster superviseur ou Tanzu Kubernetes respectivement.
Topologie de Cluster superviseur avec un réseau de charge de travail isolé et HAProxy avec deux cartes réseau virtuelles
- Machines virtuelles de plan de contrôle Kubernetes. Un réseau de charge de travail principal pour gérer le trafic pour les machines virtuelles du plan de contrôle Kubernetes.
- Des nœuds de clusters Tanzu Kubernetes Un réseau de charge de travail. que vous attribuez à tous les espaces de noms sur le Cluster superviseur. Ce réseau connecte les nœuds de clusters Tanzu Kubernetes.
- Adresses IP virtuelles HAProxy. Dans cette configuration, la machine virtuelle HAProxy est déployée avec deux cartes réseau virtuelles (configuration Par défaut). Vous pouvez connecter la machine virtuelle HAProxy au réseau de charge de travail principal ou au réseau de charge de travail que vous utilisez pour les espaces de noms. Vous pouvez également connecter HAProxy à un réseau de machines virtuelles qui existe déjà dans vSphere et qui est routable vers les réseaux principal et de charge de travail.
- L'utilisateur DevOps ou le service externe envoie le trafic à une adresse IP virtuelle. Le trafic est routé vers le réseau sur lequel HAProxy est connecté.
- HAProxy équilibre la charge du trafic IP virtuel vers l'adresse IP du nœud Tanzu Kubernetes ou la machine virtuelle du plan de contrôle. HAProxy réclame l'adresse IP virtuelle afin de pouvoir équilibrer la charge du trafic destiné à cette adresse IP.
- La machine virtuelle du plan de contrôle ou le nœud de cluster Tanzu Kubernetes fournit le trafic aux espaces cibles s'exécutant dans le cluster Tanzu Kubernetes.
Topologie de Cluster superviseur avec plusieurs réseaux de charge de travail et HAProxy avec deux cartes réseau virtuelles
Dans cette topologie, vous pouvez configurer un groupe de ports devant agir comme réseau de charge de travail principal et un groupe de ports dédiés servant de réseau de charge de travail vers chaque espace de noms. HAProxy est déployé avec deux cartes réseau virtuelles (configuration Par défaut), et vous pouvez le connecter au réseau de charge de travail principal ou à l'un des réseaux de charge de travail. Vous pouvez également un réseau de machines virtuelles existant routable vers les réseaux principal et de charge de travail.
Topologie de Cluster superviseur avec plusieurs réseaux de charge de travail et HAProxy avec trois cartes réseau virtuelles
Sélection entre les topologies possibles
Avant d'effectuer un choix entre chacune des topologies possibles, évaluez les besoins de votre environnement :
- Avez-vous besoin d'une isolation de couche 2 entre Cluster superviseur et les clusters Tanzu Kubernetes ?
- Non : topologie la plus simple avec un réseau de charge de travail qui dessert tous les composants.
- Oui : topologie réseau de charge de travail isolée avec des réseaux principal et de charge de travail séparés.
- Avez-vous besoin d'une autre isolation de couche 2 entre vos clusters Tanzu Kubernetes ?
- Non : topologie réseau de charge de travail isolée avec des réseaux principal et de charge de travail séparés.
- Oui : topologie à plusieurs réseaux de charge de travail avec un réseau de charge de travail distinct pour chaque espace de noms et un réseau de charge de travail principal dédié.
- Voulez-vous empêcher vos utilisateurs DevOps et les services externes d'effectuer un routage direct vers les machines virtuelles du plan de contrôle Kubernetes et vers les nœuds de clusters Tanzu Kubernetes ?
- Non : deux configurations HAProxy de carte réseau.
- Oui : trois configurations HAProxy de carte réseau. Cette configuration est recommandée pour les environnements de production