Ingress de dos niveles

Last published : Oct 02, 2026
En una implementación de dos niveles, NetScaler VPX o NetScaler MPX se implementa fuera del clúster de Kubernetes (nivel 1) y los NetScaler CPX se implementan dentro del clúster de Kubernetes (nivel 2).
Los dispositivos NetScaler MPX o NetScaler VPX del nivel 1 actúan como proxy del tráfico (Norte-Sur) desde el cliente a los NetScaler CPX del nivel 2. El NetScaler CPX del nivel 2 enruta el tráfico a los microservicios del clúster de Kubernetes. NetScaler Ingress Controller, implementado como un pod independiente, configura el NetScaler de nivel 1. Y el NetScaler Ingress Controller de sidecar en uno o más pods de NetScaler CPX configura el NetScaler CPX asociado en el mismo pod.
La implementación de dos niveles se puede configurar en Kubernetes en un entorno bare metal o en nubes públicas como AWS, GCP o Azure.
dos niveles

Implementación de ingress de dos niveles

Requisitos previos

  • Cree un clúster de Kubernetes en la nube o en las instalaciones. El clúster de Kubernetes en la nube puede ser un Kubernetes administrado (por ejemplo: GKE, EKS o AKS) o una implementación de Kubernetes creada a medida.

Implementación de Ingress de dos niveles

  1. Implemente NetScaler MPX o NetScaler VPX en un modo de implementación de varias NIC fuera del clúster de Kubernetes.
  2. Implemente un NetScaler Ingress Controller independiente para configurar NetScaler VPX para dirigir las solicitudes del cliente a un servicio CPX en el clúster de Kubernetes.
    Para obtener información sobre cómo implementar un NetScaler Ingress Controller independiente, consulte Ingress unificado. Establezca el ingressClass para esta instancia de NSIC como nsic-vpx porque el recurso de ingress implementado para configurar NetScaler VPX en el paso 8 utiliza la misma clase de ingress.
  3. En las implementaciones en la nube, habilite el modo de reenvío basado en MAC en el NetScaler VPX de nivel 1. Como NetScaler VPX se implementa en modo de varias NIC, no tiene la ruta de retorno para llegar a la red CNI del POD o a la red del cliente. Por lo tanto, debe habilitar el modo de reenvío basado en MAC en el NetScaler VPX de nivel 1 para manejar este escenario.
  4. Implemente un microservicio de ejemplo utilizando el siguiente comando:
    kubectl apply -f - <<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
     name: cnn-website
     labels:
       name: cnn-website
       app: cnn-website
    spec:
     selector:
       matchLabels:
         app: cnn-website
     replicas: 2
     template:
       metadata:
         labels:
           name: cnn-website
           app: cnn-website
       spec:
         containers:
         - name: cnn-website
           image: quay.io/sample-apps/cnn-website:v1.0.0
           ports:
           - name: http-80
             containerPort: 80
           - name: https-443
             containerPort: 443
    ---
    apiVersion: v1
    kind: Service
    metadata:
     name: cnn-website
     labels:
       app: cnn-website
    spec:
     type: NodePort
     ports:
     - name: http-80
       port: 80
       targetPort: 80
     - name: https-443
       port: 443
       targetPort: 443
     selector:
       name: cnn-website
    EOF
  5. Implemente NetScaler CPX como entrada de nivel 2 con NetScaler Ingress Controller como sidecar.
    1. Agregue el repositorio de gráficos de NetScaler Helm a su registro local utilizando el siguiente comando.
      helm repo add netscaler https://netscaler.github.io/netscaler-helm-charts/
    2. Instale NetScaler CPX con NetScaler Ingress Controller utilizando el siguiente comando.
      helm install netscaler-cpx-with-ingress-controller netscaler/netscaler-cpx-with-ingress-controller --set license.accept=yes,serviceType.nodePort.enabled=True,ingressClass[0]=cpx
    Nota:
    También puede usar un archivo values.yaml en el comando helm install para especificar los valores de los parámetros configurables en lugar de proporcionar cada parámetro como un argumento de línea de comandos. Por ejemplo,
    helm install netscaler-cpx-with-ingress-controller netscaler/netscaler-cpx-with-ingress-controller -f values.yaml
    Para obtener información sobre los parámetros obligatorios y opcionales que puede configurar durante la instalación de CPX con NSIC, consulte Configuración.
  6. Cree un secreto de Kubernetes utilizando un certificado para copiar el certificado a NetScaler cuando se implementa un objeto de entrada. Puede usar el mismo secreto en el recurso de entrada tanto para CPX como para VPX. En este procedimiento, usaremos tls-secret. Para obtener información sobre cómo generar un secreto de Kubernetes, consulte Generar secreto de Kubernetes.
  7. Cree un objeto de entrada para enrutar el tráfico de NetScaler VPX o NetScaler MPX a NetScaler CPX en el clúster de Kubernetes utilizando el siguiente comando:
    kubectl apply -f - <<EOF
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      annotations:
        ingress.citrix.com/frontend-ip: <NSVIP> # vserver IP
        ingress.citrix.com/secure_backend: "True"
      name: vpxingress
      spec:
        tls:
          - secretName: tls-secret
        ingressClassName: nsic-vpx
        rules:
        - host: cnnwebsite.com
          http:
            paths:
            - backend:
                service:
                  name: netscaler-cpx-with-ingress-controller-cpx-service
                  port:
                    number: 443
              path: /
              pathType: Prefix
    ---
    apiVersion: networking.k8s.io/v1
    kind: IngressClass # If Helm chart is used to deploy NSIC, you need not create IngressClass
    metadata:
      name: nsic-vpx
    spec:
      controller: citrix.com/ingress-controller
  8. Cree un objeto de entrada para el NetScaler CPX de nivel 2 para enrutar el tráfico a la aplicación de microservicio utilizando el siguiente comando:
    kubectl apply -f - <<EOF
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    apiVersion: networking.k8s.io/v1
    metadata:
      annotations:
      name: cpxingress
    spec:
      tls:
        - secretName: tls-secret
      ingressClassName: cpx
      rules:
        - host: cnnwebsite.com
          http:
            paths:
              - path: /
                pathType: Prefix
                backend:
                  service:
                    name: cnn-website
                    port:
                      number: 80
    ---
    apiVersion: networking.k8s.io/v1
    kind: IngressClass # If Helm chart is used to deploy CPX with NSIC, you need not create IngressClass
    metadata:
      name: cpx
    spec:
      controller: citrix.com/ingress-controller
    EOF
  9. Para enviar tráfico a la aplicación cnn-website, realice los siguientes pasos:
    Para Windows:
    1. Abra el Bloc de notas como administrador.
    2. Agregue la entrada VIP cnnwebsite.com en c:\Windows\System32\Drivers\etc\hosts.
    Para MAC o Linux:
    1. Abra los archivos de host en un editor de archivos usando el siguiente comando: sudo nano /etc/hosts.
    2. Añada la entrada VIP cnnwebsite.com.
  10. Envíe el tráfico usando el siguiente comando:
    curl  -kv https://cnn-website
Advertencia:
No cree réplicas de pods de NSIC en el clúster de Kubernetes. Cuando crea réplicas de un pod de NSIC especificando replicatset>1, se observa un comportamiento inesperado con NSIC/VPX porque el mismo APP_PREFIX se comparte entre los pods de NSIC y cada instancia intenta configurar los mismos recursos.