Implementación de NetScaler CPX en una red de varios hosts
Una instancia de NetScaler CPX en una red multihost se puede configurar en una implementación de producción en el centro de datos, donde proporciona funciones de equilibrio de carga. Además, puede proporcionar funciones de supervisión y datos de análisis.
En una red de varios hosts, las instancias de NetScaler CPX, los servidores backend y los clientes se implementan en hosts diferentes. Puede utilizar topologías de varios hosts en implementaciones de producción en las que la instancia de NetScaler CPX equilibra la carga de un conjunto de aplicaciones y servidores basados en contenedores o incluso servidores físicos.
Topología 1: servidores NetScaler CPX y backend en el mismo host; cliente en una red diferente
En esta topología, la instancia de NetScaler CPX y los servidores de base de datos se aprovisionan en el mismo host de Docker, pero el tráfico del cliente se origina en otro lugar de la red. Esta topología se puede utilizar en una implementación de producción en la que la instancia de NetScaler CPX equilibra la carga de un conjunto de aplicaciones o servidores basados en contenedores.
El siguiente diagrama ilustra esta topología.
En este ejemplo, la instancia de NetScaler CPX (172.17.0.4) y los dos servidores, DB1 (172.17.0.10) y DB2 (172.17.0.11) se aprovisionan en el mismo host de Docker con la dirección IP 10.102.29.100. El cliente reside en otra parte de la red.
Las solicitudes de clientes que se originan en Internet se reciben en el VIP configurado en la instancia de NetScaler CPX, que luego distribuye las solicitudes entre los dos servidores.
Hay dos métodos que puede usar para configurar esta topología:
Método 1: uso de una dirección IP adicional y un puerto estándar para el VIP
- Configure el VIP en el contenedor NetScaler CPX mediante una dirección IP adicional.
- Configure una dirección IP adicional para el host de Docker.
- Configure las reglas NAT para reenviar todo el tráfico recibido en la dirección IP adicional del host Docker a la dirección IP adicional del VIP.
- Configure los dos servidores como servicios en la instancia de NetScaler CPX.
- Por último, vincule los servicios al VIP.
Tenga en cuenta que en este ejemplo de configuración, la red 10.x.x.x indica una red pública.
Para configurar este caso de ejemplo, ejecute los siguientes comandos mediante la función Trabajos en Citrix ADM o mediante las API de 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-->
Configure una dirección IP pública adicional para el host de Docker y una regla NAT ejecutando los siguientes comandos en el símbolo del shell de 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étodo 2: utilizar la dirección IP de NetScaler CPX para el VIP y configurar la asignación de puertos:
- Configure la VIP y los dos servicios en la instancia de NetScaler CPX. Use un puerto no estándar, 81, con el VIP.
- Vincula los servicios al VIP.
- Configure una regla NAT para reenviar todo el tráfico recibido en el puerto 50000 del host Docker a la VIP y al puerto 81.
Para configurar este caso de ejemplo, ejecute el siguiente comando en el símbolo del shell de Linux mientras crea el contenedor NetScaler CPX en los tres hosts de Docker:
docker run -dt -p 22 -p 80 -p 161/udp -p 50000:81 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->
Después de aprovisionar la instancia de NetScaler CPX, ejecute los siguientes comandos mediante la función Trabajos en Citrix ADM o mediante las API de 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-->
Nota:
Si no ha configurado la asignación de puertos durante el aprovisionamiento de la instancia de NetScaler CPX, configure una regla NAT ejecutando los siguientes comandos en el símbolo del shell de 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
Topología 2: NetScaler CPX con servidores físicos y cliente
En esta topología, solo la instancia de NetScaler CPX se aprovisiona en un host Docker. El cliente y los servidores no están basados en contenedores y residen en otra parte de la red.
En este entorno, puede configurar la instancia de NetScaler CPX para equilibrar la carga del tráfico en los servidores físicos.
En esta ilustración se ilustra esta topología.
En este ejemplo, el contenedor NetScaler CPX (172.17.0.4) se encuentra entre el cliente y los servidores físicos que actúan como proxy. Los servidores, DB1 (10.102.29.105) y DB2 (10.102.29.110), residen fuera de un host Docker en la red. La solicitud del cliente se origina en Internet y se recibe en NetScaler CPX, que la distribuye en los dos servidores.
Para habilitar esta comunicación entre el cliente y los servidores a través de NetScaler CPX, primero debe configurar la asignación de puertos al crear el contenedor NetScaler CPX. A continuación, configure los dos servicios en el contenedor NetScaler CPX para que representen los dos servidores. Y, por último, configure un servidor virtual mediante la dirección IP de NetScaler CPX y el puerto HTTP asignado no estándar 8080.
Tenga en cuenta que en la configuración de ejemplo, la red 10.x.x.x indica una red pública.
Para configurar este caso de ejemplo, ejecute el siguiente comando en el símbolo del shell de Linux mientras crea el contenedor NetScaler CPX:
docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->
A continuación, ejecute los siguientes comandos mediante la función Trabajos en Citrix ADM o mediante las API de 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-->
Topología 3: NetScaler CPX y servidores aprovisionados en diferentes hosts
En esta topología, la instancia de NetScaler CPX y los servidores de base de datos se aprovisionan en diferentes hosts de Docker y el tráfico del cliente se origina en Internet. Esta topología se puede utilizar en una implementación de producción en la que la instancia de NetScaler CPX equilibra la carga de un conjunto de aplicaciones o servidores basados en contenedores.
El siguiente diagrama ilustra esta topología.
En este ejemplo, la instancia de NetScaler CPX y un servidor (DB1) se aprovisionan en el mismo host de Docker con la dirección IP 10.102.29.100. Otros cuatro servidores (DB2, DB3, DB4 y DB5) se aprovisionan en dos hosts Docker diferentes, 10.102.29.105 y 10.102.29.110.
Las solicitudes de clientes que se originan en Internet se reciben en la instancia de NetScaler CPX, que luego distribuye las solicitudes en los cinco servidores. Para habilitar esta comunicación, debe configurar lo siguiente:
-
Configure la asignación de puertos al crear su contenedor NetScaler CPX. En este ejemplo, esto significa que debe reenviar el puerto 8080 del contenedor al puerto 8080 del host. Cuando la solicitud del cliente llega al puerto 8080 del host, se asigna al puerto 8080 del contenedor CPX.
-
Configure los cinco servidores como servicios en la instancia de NetScaler CPX. Debe usar una combinación de la dirección IP del host Docker respectivo y el puerto asignado para configurar estos servicios.
-
Configure una VIP en la instancia de NetScaler CPX para recibir la solicitud del cliente. Este VIP debe estar representado por la dirección IP de NetScaler CPX y el puerto 8080 que se asignó al puerto 8080 del host.
-
Por último, vincule los servicios al VIP.
Tenga en cuenta que en la configuración de ejemplo, la red 10.x.x.x indica una red pública.
Para configurar este caso de ejemplo, ejecute el siguiente comando en el símbolo del shell de Linux mientras crea el contenedor NetScaler CPX:
docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
<!--NeedCopy-->
Ejecute los siguientes comandos mediante la función Trabajos en Citrix ADM o mediante las API de 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-->