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

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

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

Topologie 1 : serveurs NetScaler CPX et 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’un autre emplacement sur le réseau. Cette topologie peut être utilisée dans un déploiement de production dans lequel l’instance NetScaler CPX équilibre la charge d’un ensemble d’applications ou de serveurs basés sur des conteneurs.

Le schéma 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 demandes du client provenant d’Internet sont reçues sur l’adresse IP virtuelle configurée sur l’instance NetScaler CPX, qui distribue ensuite les demandes sur 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 à l’aide d’une adresse IP supplémentaire.
  2. Configurez une adresse IP supplémentaire pour l’hôte Docker.
  3. Configurez les 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 cet exemple de scénario, exécutez les commandes suivantes à l’aide de la fonctionnalité Jobs de Citrix ADM ou à l’aide des 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 du shell 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 configurer le mappage des ports :

  1. Configurez l’adresse IP virtuelle 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 cet exemple de scénario, exécutez la commande suivante à l’invite du shell 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 à l’aide de la fonctionnalité Jobs de Citrix ADM ou à l’aide des 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 des ports lors du provisionnement de l’instance NetScaler CPX, configurez une règle NAT en exécutant les commandes suivantes à l’invite du shell 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 en tant que 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 demande du client provient d’Internet et est reçue sur le NetScaler CPX, qui la distribue entre les deux serveurs.

Pour activer cette communication entre le client et les serveurs via NetScaler CPX, vous devez d’abord configurer le mappage des ports lors de la création du conteneur NetScaler CPX. Configurez ensuite les deux services sur le conteneur NetScaler CPX pour représenter les deux serveurs. Enfin, configurez un serveur virtuel à l’aide de l’adresse IP NetScaler CPX et du port HTTP non standard mappé 8080.

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

Pour configurer cet exemple de scénario, exécutez la commande suivante à l’invite du shell 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 ensuite les commandes suivantes à l’aide de la fonctionnalité Jobs de Citrix ADM ou à l’aide des 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 dans lequel l’instance NetScaler CPX équilibre la charge d’un ensemble d’applications ou de serveurs basés sur des conteneurs.

Le schéma 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 dont l’adresse IP est 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 demandes du client provenant d’Internet sont reçues sur l’instance NetScaler CPX, qui les distribue ensuite sur les cinq serveurs. Pour activer cette communication, vous devez configurer les éléments suivants :

  1. Définissez le mappage des 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 sur l’hôte. Lorsque la demande du client arrive sur le port 8080 de l’hôte, elle correspond 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 et du port mappé respectifs pour définir ces services.

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

  4. Enfin, liez les services au VIP.

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

Pour configurer cet exemple de scénario, exécutez la commande suivante à l’invite du shell 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 à l’aide de la fonctionnalité Jobs de Citrix ADM ou à l’aide des 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ôtes