Déployer NetScaler CPX dans un réseau multi-hôte

Une instance NetScaler CPX dans un réseau multi-hôte peut être configurée dans un déploiement en production dans le centre de données où elle fournit des fonctions d’équilibrage de charge. Elle peut en outre fournir des fonctions de surveillance et des données analytiques.

Dans un réseau multi-hôte, les instances NetScaler CPX, les serveurs backend et les clients sont déployés sur des hôtes différents. Vous pouvez utiliser des topologies multi-hôtes dans des déploiements en production où l’instance NetScaler CPX équilibre la charge d’un ensemble d’applications et de serveurs basés sur des conteneurs, ou même de serveurs physiques.

Topologie 1 : NetScaler CPX et serveurs backend sur le même hôte ; client sur un réseau différent

Dans cette topologie, l’instance NetScaler CPX et les serveurs de base de données sont provisionnés sur le même hôte Docker, mais le trafic client provient d’ailleurs sur le réseau. Cette topologie peut être utilisée dans un déploiement en production où l’instance NetScaler CPX équilibre la charge d’un ensemble d’applications ou de serveurs basés sur des conteneurs.

Le diagramme suivant illustre cette topologie.

image localisée

Dans cet exemple, l’instance NetScaler CPX (172.17.0.4) et les deux serveurs, DB1 (172.17.0.10) et DB2 (172.17.0.11) sont provisionnés sur le même hôte Docker avec l’adresse IP 10.102.29.100. Le client réside ailleurs sur le réseau.

Les requêtes client provenant d’Internet sont reçues sur le VIP configuré sur l’instance NetScaler CPX, qui distribue ensuite les requêtes entre les deux serveurs.

Vous pouvez utiliser deux méthodes pour configurer cette topologie :

Méthode 1 : Utilisation d’une adresse IP supplémentaire et d’un port standard pour le VIP

  1. Configurez le VIP sur le conteneur NetScaler CPX en utilisant une adresse IP supplémentaire.
  2. Configurez une adresse IP supplémentaire pour l’hôte Docker.
  3. Configurez des règles NAT pour transférer tout le trafic reçu sur l’adresse IP supplémentaire de l’hôte Docker vers l’adresse IP supplémentaire du VIP.
  4. Configurez les deux serveurs en tant que services sur l’instance NetScaler CPX.
  5. Enfin, liez les services au VIP.

Notez que dans cet exemple de configuration, le réseau 10.x.x.x désigne un réseau public.

Pour configurer ce scénario d’exemple, exécutez les commandes suivantes en utilisant la fonctionnalité Jobs de NetScaler® MAS ou en utilisant les API NITRO :

    add service s1 172.17.0.10 HTTP 80
    add service s2 172.17.0.11 HTTP 80
    add lb vserver cpx-vip HTTP 172.17.4.100 80
    bind lb vserver cpx-vip s1
    bind lb vserver cpx-vip s2
<!--NeedCopy-->

Configurez une adresse IP publique supplémentaire pour l’hôte Docker et une règle NAT en exécutant les commandes suivantes à l’invite de commande Linux :

    ip addr add 10.102.29.103/24 dev eth0
    iptables -t nat -A PREROUTING -p ip  -d 10.102.29.103 -j DNAT --to-destination 172.17.4.100
<!--NeedCopy-->

Méthode 2 : Utilisation de l’adresse IP NetScaler CPX pour le VIP et configuration du mappage de ports :

  1. Configurez le VIP et les deux services sur l’instance NetScaler CPX. Utilisez un port non standard, 81, avec le VIP.
  2. Liez les services au VIP.
  3. Configurez une règle NAT pour transférer tout le trafic reçu sur le port 50000 de l’hôte Docker vers le VIP et le port 81.

Pour configurer ce scénario d’exemple, exécutez la commande suivante à l’invite de commande Linux lors de la création du conteneur NetScaler CPX sur les trois hôtes Docker :

    docker run -dt -p 22 -p 80 -p 161/udp -p 50000:81 --ulimit core=-1 --privileged=true cpx:6.2

<!--NeedCopy-->

Une fois l’instance NetScaler CPX provisionnée, exécutez les commandes suivantes en utilisant la fonctionnalité Jobs de NetScaler MAS ou en utilisant les API NITRO :

    add service s1 172.17.0.10 http 80
    add service s2 172.17.0.11 http 80
    add lb vserver cpx-vip HTTP 172.17.0.4 81
    bind lb vserver cpx-vip s1
    bind lb vserver cpx-vip s2
<!--NeedCopy-->

Remarque :

Si vous n’avez pas configuré le mappage de ports lors du provisionnement de l’instance NetScaler CPX, configurez une règle NAT en exécutant les commandes suivantes à l’invite de commande Linux :

iptables -t nat -A PREROUTING -p tcp -m addrtype –dst-type LOCAL -m tcp –dport 50000 -j DNAT –to-destination 172.17.0.4:81

Topologie 2 : NetScaler CPX avec serveurs physiques et client

Dans cette topologie, seule l’instance NetScaler CPX est provisionnée sur un hôte Docker. Le client et les serveurs ne sont pas basés sur des conteneurs et résident ailleurs sur le réseau.

Dans cet environnement, vous pouvez configurer l’instance NetScaler CPX pour équilibrer la charge du trafic entre les serveurs physiques.

La figure suivante illustre cette topologie.

image localisée

Dans cet exemple, le conteneur NetScaler CPX (172.17.0.4) se trouve entre le client et les serveurs physiques, agissant comme un proxy. Les serveurs, DB1 (10.102.29.105) et DB2 (10.102.29.110), résident en dehors d’un hôte Docker sur le réseau. La requête client provient d’Internet et est reçue sur le NetScaler CPX, qui la distribue entre les deux serveurs.

Pour permettre cette communication entre le client et les serveurs via NetScaler CPX, vous devez d’abord configurer le mappage de ports lors de la création du conteneur NetScaler CPX. Ensuite, configurez les deux services sur le conteneur NetScaler CPX pour représenter les deux serveurs. Et enfin, configurez un serveur virtuel en utilisant l’adresse IP du NetScaler CPX et le port HTTP mappé non standard 8080.

Notez que dans la configuration d’exemple, le réseau 10.x.x.x désigne un réseau public.

Pour configurer ce scénario d’exemple, exécutez la commande suivante à l’invite de commande Linux lors de la création du conteneur NetScaler CPX :

    docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->

Ensuite, exécutez les commandes suivantes soit en utilisant la fonction Jobs dans NetScaler MAS, soit en utilisant les API NITRO :

    add service s1 HTTP 10.102.29.105 80
    add service s2 HTTP 10.102.29.110 80
    add lb vserver cpx-vip HTTP 172.17.0.4 8080
    bind lb vserver cpx-vip s1
    bind lb vserver cpx-vip s2
<!--NeedCopy-->

Topologie 3 : NetScaler CPX et serveurs provisionnés sur différents hôtes

Dans cette topologie, l’instance NetScaler CPX et les serveurs de base de données sont provisionnés sur différents hôtes Docker, et le trafic client provient d’Internet. Cette topologie peut être utilisée dans un déploiement de production où l’instance NetScaler CPX équilibre la charge d’un ensemble d’applications ou de serveurs basés sur des conteneurs.

Le diagramme suivant illustre cette topologie.

image localisée

Dans cet exemple, l’instance NetScaler CPX et un serveur (DB1) sont provisionnés sur le même hôte Docker avec l’adresse IP 10.102.29.100. Quatre autres serveurs (DB2, DB3, DB4 et DB5) sont provisionnés sur deux hôtes Docker différents, 10.102.29.105 et 10.102.29.110.

Les requêtes client provenant d’Internet sont reçues sur l’instance NetScaler CPX, qui distribue ensuite les requêtes entre les cinq serveurs. Pour permettre cette communication, vous devez configurer les éléments suivants :

  1. Définissez le mappage de ports lors de la création de votre conteneur NetScaler CPX. Dans cet exemple, cela signifie que vous devez transférer le port 8080 du conteneur vers le port 8080 de l’hôte. Lorsque la requête client arrive sur le port 8080 de l’hôte, elle est mappée au port 8080 du conteneur CPX.

  2. Configurez les cinq serveurs en tant que services sur l’instance NetScaler CPX. Vous devez utiliser une combinaison de l’adresse IP de l’hôte Docker respective et du port mappé pour configurer ces services.

  3. Configurez une VIP sur l’instance NetScaler CPX pour recevoir la requête du client. Cette VIP doit être représentée par l’adresse IP du NetScaler CPX et le port 8080 qui a été mappé au port 8080 de l’hôte.

  4. Enfin, liez les services à la VIP.

Notez que dans la configuration d’exemple, le réseau 10.x.x.x désigne un réseau public.

Pour configurer ce scénario d’exemple, exécutez la commande suivante à l’invite de commande Linux lors de la création du conteneur NetScaler CPX :

    docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->

Exécutez les commandes suivantes en utilisant la fonctionnalité Jobs de NetScaler MAS ou en utilisant les API NITRO :

    add service s1 10.102.29.100 HTTP 8081
    add service s2 10.102.29.105 HTTP 8081
    add service s3 10.102.29.105 HTTP 8082
    add service s4 10.102.29.110 HTTP 8081
    add service s5 10.102.29.110 HTTP 8082
    add lb vserver cpx-vip HTTP 172.17.0.2 8080
    bind lb vserver cpx-vip s1
    bind lb vserver cpx-vip s2
    bind lb vserver cpx-vip s3
    bind lb vserver cpx-vip s4
    bind lb vserver cpx-vip s5
<!--NeedCopy-->
Déployer NetScaler CPX dans un réseau multi-hôte