Implementar NetScaler VPX en alta disponibilidad activo-activo en un entorno EKS mediante Amazon ELB y NetScaler Ingress Controller

Last published : Oct 02, 2026
Este tema cubre una solución para implementar NetScaler VPX en modo de alta disponibilidad activo-activo en varias zonas de disponibilidad en la plataforma AWS Elastic Container Service (EKS). La solución combina AWS Elastic Load Balancing (ELB) y NetScaler VPX para equilibrar la carga del tráfico de entrada a los microservicios implementados en el clúster EKS. AWS ELB gestiona el tráfico de capa 4 y los NetScaler VPX proporcionan funcionalidades avanzadas de capa 7, como el equilibrio de carga avanzado, el almacenamiento en caché y el enrutamiento basado en contenido.

Información general de la solución

Una arquitectura básica de un clúster EKS incluiría tres subredes públicas y tres subredes privadas implementadas en tres zonas de disponibilidad, como se muestra en el siguiente diagrama:
Arquitectura de EKS
Con esta solución, la arquitectura del clúster EKS sería la que se muestra en el siguiente diagrama:
Arquitectura de la solución
En la nube de AWS, AWS Elastic Load Balancing gestiona las conexiones TCP de capa 4 y equilibra la carga del tráfico mediante un algoritmo de enrutamiento de hash de flujo. El ELB puede ser un Network Load Balancer o un Classic Load Balancer.
AWS ELB escucha las conexiones entrantes según lo definido por sus oyentes. Cada oyente reenvía una nueva conexión a una de las instancias de NetScaler VPX disponibles. La instancia de NetScaler VPX equilibra la carga del tráfico a los pods de EKS. También realiza otras funcionalidades de capa 7, como la política de reescritura, la política de respuesta, la descarga SSL, etc., proporcionadas por NetScaler VPX.
Se implementa un NetScaler Ingress Controller en el clúster EKS para cada instancia de NetScaler VPX. Los NetScaler Ingress Controllers se configuran con la misma clase de entrada. Y configura los objetos Ingress en el clúster EKS en las respectivas instancias de NetScaler VPX.
AWS Elastic Load Balancing (ELB) tiene un nombre DNS al que se asigna una dirección IP dinámicamente. El nombre DNS se puede agregar como registro Alias A para su dominio en Route53 para acceder a la aplicación alojada en el clúster EKS.

Proceso de implementación

Realice lo siguiente para implementar la solución:

Implementar instancias de NetScaler VPX

NetScaler VPX está disponible como plantilla de CloudFormation. La plantilla de CloudFormation implementa una instancia de NetScaler VPX con una única ENI en una subred determinada. También configura el NSIP, VIP y SNIP para la instancia de NetScaler VPX.
Para esta solución, debe implementar dos instancias de NetScaler VPX. Implemente las instancias de NetScaler VPX en dos zonas de disponibilidad especificando el mismo NetScaler VPX y una subred pública diferente.
Después de implementar las instancias de NetScaler VPX, puede verificar la implementación revisando la salida de la plantilla de CloudFormation, como se muestra en la siguiente captura de pantalla. La salida debe mostrar las distintas direcciones IP (VIP, SNIP y NSIP) configuradas para las instancias de NetScaler VPX:
Salida de la plantilla de CloudFormation
Nota:
La plantilla de CloudFormation implementa la instancia de NetScaler VPX con la dirección IP principal de la instancia EC2 de NetScaler VPX como VIP y la dirección IP secundaria como dirección IP de administración.
Una vez que las instancias de NetScaler VPX se hayan implementado correctamente, debe editar los grupos de seguridad para permitir el tráfico desde el grupo de seguridad del grupo de nodos de EKS. Además, debe cambiar el grupo de seguridad del grupo de nodos de EKS para permitir el tráfico desde las instancias VPX.

Implementar NetScaler Ingress Controller

Implemente una instancia independiente de NetScaler Ingress Controller para cada instancia de NetScaler VPX. Siga las instrucciones de implementación para implementar NetScaler Ingress Controller.
Una vez que la instancia de NetScaler VPX esté activa, debe configurar una cuenta de usuario del sistema en las instancias de NetScaler VPX. NetScaler Ingress Controller utiliza la cuenta de usuario del sistema para iniciar sesión en las instancias de NetScaler VPX. Para obtener instrucciones sobre cómo configurar la cuenta de usuario del sistema, consulte Crear una cuenta de usuario del sistema para CIC en NetScaler.
  1. Edite el YAML de implementación de NetScaler Ingress Controller (citrix-ingress-controller.yaml).
    Reemplace NS_IP por la dirección Private NSIP de la instancia de NetScaler VPX correspondiente. Además, proporcione el nombre de usuario y la contraseña de la cuenta de usuario del sistema que ha creado en la instancia de NetScaler VPX. Una vez que haya editado el archivo citrix-ingress-controller.yaml, implemente el archivo YAML actualizado mediante el siguiente comando:
    kubectl apply -f citrix-ingress-controller .yaml
  2. Realice el Paso 1 en la segunda instancia de NetScaler Ingress Controller.
  3. Asegúrese de que ambos pods estén ACTIVOS y en ejecución. Además, verificar si NetScaler Ingress Controller puede conectarse a la instancia de NetScaler VPX respectiva utilizando los registros:
    kubectl logs <cic_pod_name>
Una vez que los pods de NetScaler Ingress Controller se implementan y están en ejecución en el clúster de EKS. Cualquier recurso de entrada de Kubernetes configurado con la clase de entrada citrix se configura automáticamente en ambas instancias de NetScaler VPX.

Configurar el equilibrio de carga elástico

Según sus requisitos, puede configurar cualquiera de los siguientes equilibradores de carga:
  • Equilibradores de carga de red
  • Equilibradores de carga clásicos

Configurar el equilibrador de carga de red

El equilibrador de carga de red (NLB) es una buena opción para gestionar el equilibrio de carga de conexiones TCP. En esta solución, el NLB se utiliza para aceptar el tráfico entrante y enrutarlo a una de las instancias de NetScaler VPX. El NLB equilibra la carga utilizando el algoritmo de hash de flujo basado en el protocolo, la dirección IP de origen, el puerto de origen, la dirección IP de destino, el puerto de destino y el número de secuencia TCP.
Para configurar el NLB:
  1. En la barra de navegación izquierda, haga clic en Target Group. Cree dos grupos de destino diferentes. Un grupo de destino (Target-Group-80) para enrutar el tráfico en el puerto 80 y el otro grupo de destino (Target-Group-443) para enrutar el tráfico en el puerto 443, respectivamente.
    Target Group
  2. Cree un grupo de destino llamado, *Target-Group-80. Realice lo siguiente:
    1. En el campo Target group name, introduzca el nombre del grupo de destino como Target-Group-80.
    2. En el campo Tipo de destino, seleccione Instancia.
    3. En la lista Protocolo, seleccione TCP.
    4. En el campo Puerto, introduzca 80.
    5. En la lista VCP, seleccione la VPC donde implementó su clúster EKS.
    6. En la sección Configuración de comprobación de estado, utilice TCP para la comprobación de estado.
    7. Opcional. Puede modificar la Configuración avanzada de comprobación de estado para configurar las comprobaciones de estado.
      Grupo de destino 80
  3. Cree un grupo de destino denominado *Target-Group-443. Realice lo siguiente:
    1. En el campo Nombre del grupo de destino, introduzca el nombre del grupo de destino como Target-Group-443.
    2. En el campo Tipo de destino, seleccione Instancia.
    3. En la lista Protocolo, seleccione TCP.
    4. En el campo Puerto, introduzca 443.
    5. En la lista VCP, seleccione la VPC donde implementó su clúster EKS.
    6. En la sección Configuración de comprobación de estado, utilice TCP para la comprobación de estado.
    7. Opcional. Puede modificar la Configuración avanzada de comprobación de estado para configurar las comprobaciones de estado.
      Grupo de destino 80
  4. Una vez que haya creado los grupos de destino, debe registrar las instancias de destino.
    1. Seleccione el grupo de destino creado en la página de la lista, haga clic en la pestaña Destino y seleccione editar.
    2. En la pestaña Instancias, seleccione las dos instancias de NetScaler VPX y haga clic en Agregar a registradas.
  5. Repita el Paso 5 para el otro grupo de destino que haya creado.
  6. Crear balanceador de carga de red.
    1. En la barra de navegación izquierda, seleccione Balanceadores de carga y, a continuación, haga clic en Crear balanceador de carga.
    2. En la ventana Seleccionar tipo de balanceador de carga, haga clic en Crear en el panel Balanceador de carga de red.
      Crear balanceador de carga de red
  7. En la página Configurar balanceador de carga, haga lo siguiente:
    1. En el campo Nombre, introduzca un nombre para el balanceador de carga.
    2. En el campo Esquema, seleccione orientado a Internet.
    3. En la sección Agentes de escucha, haga clic en Agregar agente de escucha y agregue dos entradas con TCP como protocolo del balanceador de carga y 80 y 443 como puerto del balanceador de carga, respectivamente, como se muestra en la siguiente imagen:
      Agregar agente de escucha
    4. En la sección Zonas de disponibilidad, seleccione la VPC, las zonas de disponibilidad y las subredes donde se implementan las instancias de NetScaler VPX.
      Zonas de disponibilidad
  8. En la página Configurar enrutamiento, haga lo siguiente:
    1. En la lista Grupo de destino, haga clic en Grupo de destino existente.
    2. En el campo Nombre, introduzca Target-Group-80.
    3. En el campo Tipo de destino, seleccione Instancia.
    4. En la lista Protocolo, seleccione TCP.
    5. En el campo Puerto, introduzca 80.
    6. Seleccione TCP en la lista Protocolo de la sección Comprobaciones de estado, como se muestra en la siguiente imagen:
      Configurar enrutamiento
  9. En la página Revisar, revise su configuración y haga clic en Crear.
    Revisar
  10. Una vez creado el equilibrador de carga de red, seleccione el equilibrador de carga que ha creado para la página de lista. Seleccione la pestaña Oyentes, seleccione TCP : 444 y, a continuación, haga clic en Editar.
    Pestaña Oyente
  11. En la página Oyentes, elimine la acción predeterminada y, a continuación, seleccione Target-Group-443 en la lista Reenviar a.
    Reenviar a
  12. Haga clic en Actualizar.

Configurar el balanceador de carga clásico

Como alternativa al balanceador de carga de red de Amazon, puede configurar un balanceador de carga clásico (CLB) como balanceador de carga TCP de nivel 1.
  1. En la barra de navegación izquierda, seleccione Load Balancers (Balanceadores de carga) y, a continuación, haga clic en Create Load Balancer (Crear balanceador de carga).
    Configuración del balanceador de carga clásico
  2. En la ventana Select load balancer type (Seleccionar tipo de balanceador de carga), haga clic en Create (Crear) en el panel Classic Load balancer (Balanceador de carga clásico).
    Crear balanceador de carga clásico
  3. En la página Define Load Balancer (Definir balanceador de carga), haga lo siguiente:
    1. En el campo Load Balancer name (Nombre del balanceador de carga), introduzca un nombre para el balanceador de carga.
    2. En la lista Create LB Inside (Crear LB dentro), seleccione su NetScaler VPX.
    3. En la sección Listener Configuration (Configuración del agente de escucha), haga clic en Add (Agregar) y añada dos entradas con TCP como protocolo del balanceador de carga y 80 y 443 como puerto del balanceador de carga, respectivamente. Además, seleccione TCP como protocolo de instancia y 80 y 443 como puerto de instancia, respectivamente, como se muestra en la siguiente imagen:
      Definir balanceador de carga clásico
    4. En la sección Select Subnets (Seleccionar subredes), seleccione dos subredes públicas en dos zonas de disponibilidad diferentes para que el balanceador de carga clásico enrute el tráfico. Estas subredes son las mismas en las que ha implementado las instancias de NetScaler VPX.
      Seleccionar subred clásica
    5. En la página Asignar grupos de seguridad, seleccione un grupo de seguridad para la instancia de ELB. El grupo de seguridad puede ser el mismo que el adjunto a la ENI de NetScaler VPX o puede ser uno nuevo. Si está utilizando un nuevo grupo de seguridad, asegúrese de permitir el tráfico al grupo de seguridad de NetScaler VPX desde el grupo de seguridad de ELB y viceversa.
      Asignar grupo de seguridad clásico
    6. En la página Configurar comprobación de estado, seleccione la configuración para la comprobación de estado. Por defecto, la comprobación de estado se establece como TCP en el puerto 80; opcionalmente, también puede realizar la comprobación de estado en el puerto 443.
      Comprobación de estado clásica
    7. En la página Añadir instancias EC2, seleccione dos instancias de NetScaler VPX que se implementaron anteriormente.
      ![Classic ADD EC2 Instances](https://docs.netscaler.com/content/dam/netscaler/us/en/netscaler-k8s-ingress-controller/media/classic-add-ec2.png)
    8. En la página Añadir etiquetas, añada las etiquetas según sus requisitos.
    9. En la página Revisar, revise sus configuraciones.
    10. Haga clic en Crear.

verificar la solución

Después de haber implementado correctamente NetScaler VPX, AWS ELB y NetScaler Ingress Controller, puede verificar la solución utilizando un servicio de ejemplo.
Realice lo siguiente:
  1. Implemente un servicio de ejemplo y un ingreso utilizando app.yaml.
    kubectl apply -f app.yaml
  2. Inicie sesión en la instancia de NetScaler VPX y verificar si el vserver de Content Switching se ha configurado correctamente en ambas instancias de NetScaler VPX. Realice lo siguiente:
    1. Inicie sesión en la instancia de NetScaler VPX. Realice lo siguiente:
      1. Utilice un cliente SSH, como PuTTy, para abrir una conexión SSH a la instancia de NetScaler VPX.
      2. Inicie sesión en la instancia utilizando las credenciales de administrador.
    2. verificar si el vserver de Content Switching (cs) está configurado en la instancia utilizando el siguiente comando:
      sh cs vserver
      Salida:
      1) k8s-10.0.139.87:80:http (10.0.139.87:80) - HTTP Type: CONTENT
               State: UP
               Last state change was at Fri Apr 12 14:24:13 2019
               Time since last state change: 3 days, 03:09:18.920
               Client Idle Timeout: 180 sec
               Down state flush: ENABLED
               Disable Primary Vserver On Down : DISABLED
               Comment: uid=NNJRYQ54VM2KWCXOERK6HRJHR4VEQYRI7U3W4BNFQLTIAENMTHWA====
               Appflow® logging: ENABLED
               Port Rewrite : DISABLED
               State Update: DISABLED
               Default:  Content Precedence: RULE
               Vserver IP and Port insertion: OFF
               L2Conn: OFF Case Sensitivity: ON
               Authentication: OFF
               401 Based Authentication: OFF
               Push: DISABLED Push VServer:
               Push Label Rule: none
               Listen Policy: NONE
               IcmpResponse: PASSIVE
               RHIstate:  PASSIVE
               Traffic Domain: 0
    3. Acceda a la aplicación test.example.com utilizando el nombre DNS de la instancia de ELB.
      # curl -H 'Host: test.example.com' <DNS name of the ELB>
      Ejemplo:
      % curl -H 'Host: test.example.com' http://VPX-HA-829787521.us-west-2.elb.amazonaws.com
    4. Para eliminar la implementación, utilice el siguiente comando:
      kubectl delete -f app.yaml

Solución de problemas

Problema Resolución
Fallo de la pila de CloudFormation Asegúrese de que el usuario o rol de IAM tenga privilegios suficientes para crear instancias EC2 y configuraciones de Lambda.
Asegúrese de no haber excedido la cuota de recursos.
NetScaler Ingress Controller no puede comunicarse con las instancias de NetScaler VPX. Asegúrese de que el nombre de usuario y la contraseña sean correctos en el archivo citrix-ingress-controller.yaml.
Asegúrese de que el grupo de seguridad de NetScaler VPX permita el tráfico en los puertos 80 y 443 desde el grupo de seguridad del grupo de nodos de EKS.
Los servicios están CAÍDOS en las instancias de NetScaler VPX. Asegúrese de que el tráfico de NetScaler VPX pueda llegar al clúster de EKS. Modifique el grupo de seguridad del grupo de nodos de EKS para permitir el tráfico desde el grupo de seguridad de NetScaler VPX.
El tráfico no se enruta a la instancia de NetScaler VPX desde ELB. Asegúrese de que el grupo de seguridad de NetScaler VPX permita el tráfico desde el grupo de seguridad de ELB.