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 réseaux de charge de travail fournissent la connectivité aux nœuds de clusters Tanzu Kubernetes et aux machines virtuelles du plan de contrôle Cluster superviseur. Le réseau de charge de travail qui fournit la connectivité aux machines virtuelles du plan de contrôle Kubernetes est appelé réseau de charge de travail principal. Chaque Cluster superviseur doit disposer d'un réseau de charge de travail principal. Vous devez désigner un groupe de ports distribués en tant que réseau de charge de travail principal pour le Cluster superviseur.
Note : Les réseaux de charge de travail sont ajoutés uniquement lorsque vous activez le Cluster superviseur et ne peuvent pas être ajoutés ultérieurement.

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

Lorsque vous planifiez la topologie de mise en réseau du Cluster superviseur avec l'équilibrage de charge HAProxy, prévoyez l'utilisation de deux types 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
Note : Les plages que vous définissez pour les réseaux de charge de travail ne doivent pas chevaucher la plage d'adresses IP virtuelles HAProxy.

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.

Pour les installations de production, il est recommandé de déployer l'équilibrage de charge HAProxy à l'aide de la configuration du réseau frontal. Si vous déployez l'équilibrage de charge HAProxy à l'aide de la configuration par défaut, nous vous recommandons d'attribuer une taille de bloc d'adresses IP /24 au réseau de charge de travail. Pour les deux options de configuration, DHCP n'est pas recommandé.
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.
  • Le point de terminaison de l'API du plan de données HAProxy est lié à l'interface réseau connectée au réseau de gestion.
  • L'adresse IP de gestion attribuée à la machine virtuelle du plan de contrôle HAProxy doit être une adresse IP statique sur le réseau de gestion afin que le cluster superviseur puisse se connecter de manière fiable à l'API d'équilibrage de charge.
  • La passerelle par défaut de la machine virtuelle HAProxy doit se trouver sur ce réseau.
  • Des requêtes DNS doivent se produire sur ce réseau.
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.
  • La machine virtuelle du plan de contrôle HAProxy transfère le trafic vers le superviseur et les nœuds du cluster Tanzu Kubernetes sur ce réseau.
  • Si la machine virtuelle du plan de contrôle HAProxy est déployée en mode par défaut (deux cartes réseau), le réseau de charge de travail doit fournir les réseaux logiques utilisés pour accéder aux services d'équilibrage de charge.
  • Dans la configuration Par défaut, les adresses IP virtuelles de l'équilibrage de charge et les adresses IP du nœud de cluster Kubernetes proviennent de ce réseau. Elles seront définies comme des plages distinctes qui ne se chevauchent pas au sein du réseau.
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 réseau frontal est utilisé uniquement lorsque la machine virtuelle du plan de contrôle HAProxy est déployée avec trois cartes réseau.
  • Recommandé pour les installations de production.
  • Le réseau frontal vous permet d'exposer l'adresse IP virtuelle (VIP). HAProxy équilibrera et transfèrera le trafic vers le serveur principal approprié.

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.
Vous désignez un groupe de ports comme réseau de charge de travail principal pour le Cluster superviseur, puis vous utilisez le même groupe de ports que le réseau de charge de travail pour les Espaces de noms vSphere. Les clusters Cluster superviseur, Tanzu Kubernetes, HAProxy, les utilisateurs DevOps et les services externes se connectent tous au même groupe de ports distribués qui est défini comme réseau de charge de travail principal.
Figure 1. Cluster superviseur dépendant d'un réseau

Cluster superviseur dépendant d'un réseau
Le chemin du trafic pour les utilisateurs DevOps ou les applications externes est le suivant :
  1. 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.
  2. 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.
  3. 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

Dans cette topologie, vous configurez les réseaux sur les composants suivants :
  • 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.
Le Cluster superviseur est connecté au groupe de ports distribués prenant en charge le réseau de charge de travail principal et les clusters Tanzu Kubernetes sont connectés à un groupe de ports distribués prenant en charge le réseau de charge de travail. Les deux groupes de ports doivent être routables sur la couche 3. Vous pouvez implémenter l'isolation de couche 2 via des VLAN. Le filtrage du trafic de couche 3 est possible via des pare-feu IP et des passerelles.
Figure 2. Cluster superviseur avec un réseau de charge de travail isolé

Cluster superviseur avec un réseau de charge de travail isolé
Le chemin du trafic pour les utilisateurs DevOps ou le service externe est le suivant :
  1. 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é.
  2. 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.
  3. 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.

Le chemin du trafic pour les utilisateurs DevOps et les services externes dans cette topologie est le même qu'avec la topologie réseau de charge de travail isolée.
Figure 3. Cluster superviseur dépendant le plusieurs réseaux de charge de travail isolés

Cluster superviseur dépendant de plusieurs réseaux de charge de travail isolés

Topologie de Cluster superviseur avec plusieurs réseaux de charge de travail et HAProxy avec trois cartes réseau virtuelles

Dans cette configuration, vous déployez la machine virtuelle HAProxy avec trois cartes réseau virtuelles, ce qui connecte HAProxy à un réseau frontal. Les utilisateurs DevOps et les services externes peuvent accéder à HAProxy via des adresses IP virtuelles sur le réseau frontal. Le déploiement de HAProxy avec trois cartes réseau virtuelles est recommandé pour les environnements de production.
Figure 4. HAProxy déployé avec trois cartes réseau virtuelles

HAProxy déployé 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 :

  1. Avez-vous besoin d'une isolation de couche 2 entre Cluster superviseur et les clusters Tanzu Kubernetes ?
    1. Non : topologie la plus simple avec un réseau de charge de travail qui dessert tous les composants.
    2. Oui : topologie réseau de charge de travail isolée avec des réseaux principal et de charge de travail séparés.
  2. Avez-vous besoin d'une autre isolation de couche 2 entre vos clusters Tanzu Kubernetes ?
    1. Non : topologie réseau de charge de travail isolée avec des réseaux principal et de charge de travail séparés.
    2. 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é.
  3. 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 ?
    1. Non : deux configurations HAProxy de carte réseau.
    2. Oui : trois configurations HAProxy de carte réseau. Cette configuration est recommandée pour les environnements de production