Examinez les topologies possibles que vous pouvez mettre en œuvre pour l'équilibrage de charge HAProxy pour un Superviseur configuré avec la mise en réseau VDS. Lors de l'utilisation de vSphere IaaS control plane 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 Grid, et pour les services Kubernetes de type équilibrage de charge.

Réseaux de charge de travail sur le Superviseur

Pour configurer un Superviseur avec la mise en réseau VDS, vous devez connecter tous les hôtes du cluster à un VDS. En fonction de la topologie que vous mettez en œuvre pour les réseaux de charge de travail du 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.

Les réseaux de charge de travail fournissent la connectivité aux nœuds de clusters Tanzu Kubernetes Grid et aux machines virtuelles du plan de contrôle 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 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 Superviseur.
Note : Les réseaux de charge de travail sont ajoutés uniquement lorsque vous activez le Superviseur et ne peuvent pas être ajoutés ultérieurement.

Les machines virtuelles du plan de contrôle Kubernetes sur le 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 Grid 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 Grid s'exécute.

Allocation de plages d'adresses IP

Lorsque vous planifiez la topologie de mise en réseau du 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 Superviseur et Tanzu Kubernetes Grid. Chaque machine virtuelle du plan de contrôle Kubernetes dans le 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 Grid. Vous devez attribuer une plage d'adresses IP unique à chaque réseau de charge de travail sur le 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 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 Superviseur avec un réseau de charge de travail et HAProxy avec deux cartes réseau virtuelles

Dans cette topologie, vous configurez un 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 Grid.
  • 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 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 Superviseur, Tanzu Kubernetes Grid, 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. Superviseur dépendant d'un réseau

Le diagramme présente un Superviseur d'un groupe de ports distribués servant au trafic de gestion et de charge de travail.
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 Grid 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 Grid fournit le trafic aux espaces cibles s'exécutant dans le cluster Superviseur ou Tanzu Kubernetes Grid respectivement.

Topologie de 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 Grid Un réseau de charge de travail. que vous attribuez à tous les espaces de noms sur le Superviseur. Ce réseau connecte les nœuds de clusters Tanzu Kubernetes Grid.
  • 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 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 Grid 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. 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 Grid 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 Grid fournit le trafic aux espaces cibles s'exécutant dans le cluster Tanzu Kubernetes Grid.

Topologie de 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. Superviseur dépendant le plusieurs réseaux de charge de travail isolés

""

Topologie de 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

""

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 Superviseur et les clusters Tanzu Kubernetes Grid ?
    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 Grid ?
    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 Grid ?
    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

Considérations relatives à l'utilisation de l'équilibrage de charge HAProxy avec vSphere IaaS control plane

Gardez à l'esprit les considérations suivantes lors de la planification de vSphere IaaS control plane avec l'équilibrage de charge HAProxy.

  • Un contrat de support est requis avec HAProxy pour obtenir un support technique pour l'équilibrage de charge HAProxy. VMware GSS ne peut pas assurer la prise en charge du dispositif HAProxy .
  • Le dispositif HAProxy est un singleton sans possibilité de topologie hautement disponible. Pour les environnements hautement disponibles, VMware recommande d'utiliser une installation complète de NSX ou de NSX Advanced Load Balancer.
  • Il n'est pas possible d'étendre la plage d'adresses IP utilisée pour le serveur frontal à une date ultérieure, ce qui signifie que le réseau doit être dimensionné pour toute croissance future.