Ingress Controller de Citrix ADC

Cómo configurar la implementación de doble nivel

En una implementación de doble nivel, Citrix ADC VPX o MPX se implementa fuera del clúster de Kubernetes (nivel 1) y Citrix ADC CPX se implementan dentro del clúster de Kubernetes (nivel 2).

Los dispositivos Citrix ADC MPX o VPX de nivel 1 dirigen el tráfico (de norte a sur) desde el cliente a Citrix ADC CPX en el nivel 2. A continuación, Citrix ADC CPX de nivel 2 redirige el tráfico a los microservicios del clúster de Kubernetes. El Citrix Ingress Controller implementado como un pod independiente configura el Citrix ADC de nivel 1. Además, el Citrix Ingress Controller sidecar en uno o más pods de Citrix ADC CPX configura el Citrix ADC CPX asociado en el mismo pod.

La implementación de doble nivel se puede configurar en Kubernetes en un entorno bare metal o en nubes públicas como AWS, GCP o Azure.

El siguiente diagrama muestra una implementación de doble nivel:

Implementación de doble nivel

Proceso de configuración

El repositorio del Citrix Ingress Controller proporciona un microservicio de Apache de ejemplo y manifiestos para Citrix ADC CPX para el nivel 2, el objeto de entrada para Citrix ADC CPX de nivel 2, el Citrix Ingress Controller y un objeto de entrada para Citrix ADC de nivel 1 con fines de demostración. Estas muestras se utilizan en el proceso de configuración para implementar una topología de dos niveles.

Lleve a cabo lo siguiente:

  1. Crea 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 personalizada.

  2. Implemente Citrix ADC MPX o VPX en un modo de implementación de varias NIC fuera del clúster de Kubernetes.

    Realice lo siguiente después de implementar Citrix ADC VPX o MPX:

    1. Configure una dirección IP de la subred del clúster de Kubernetes como SNIP en Citrix ADC. Para obtener información sobre la configuración de SNIP en Citrix ADC, consulte Configuración de direcciones IP de subred (SNIP).

    2. Habilite el acceso de administración para el SNIP que es la misma subred del clúster de Kubernetes. El SNIP debe usarse como NS_IP variable en el archivo YAML del Citrix Ingress Controller de Citrix para permitir que el controlador de entrada de Citrix configure el Citrix ADC de nivel 1.

      Nota:

      No es obligatorio utilizar SNIP como NS_IP. Si se puede acceder a la dirección IP de administración de Citrix ADC desde el Citrix Ingress Controller, puede usar la dirección IP de administración como NS_IP.

    3. En implementaciones en la nube, habilite el modo de reenvío basado en MAC en Citrix ADC VPX de nivel 1. Como Citrix ADC VPX se implementa en modo NIC múltiple, no tendría la ruta de retorno para llegar a la red CNI de POD o a la red del cliente. Por lo tanto, debe habilitar el modo de reenvío basado en MAC en Citrix ADC VPX de nivel 1 para manejar este caso.

    4. Cree una cuenta de usuario del sistema Citrix ADC específica para el Citrix Ingress Controller. El Citrix Ingress Controller usa la cuenta de usuario del sistema para configurar automáticamente el Citrix ADC de nivel 1.

    5. Configure el firewall local o los grupos de seguridad en su nube para permitir el tráfico entrante a los puertos requeridos para Citrix ADC. El proceso de configuración utiliza el puerto 80 y el puerto 443, puede modificar estos puertos según sus requisitos.

  3. Implemente un microservicio de muestra. Utilice el siguiente comando:

    kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/dual-tier/manifest/apache.yaml
    
  4. Implemente Citrix ADC CPX como entrada de nivel 2. Utilice el siguiente comando:

    kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/dual-tier/manifest/tier-2-cpx.yaml
    
  5. Cree un objeto de entrada para Citrix ADC CPX de nivel 2. Utilice el siguiente comando:

    kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/dual-tier/manifest/ingress-tier-2-cpx.yaml
    
  6. Implemente el Citrix Ingress Controller para Citrix ADC de nivel 1. Lleve a cabo lo siguiente:

    1. Descargue el archivo de manifiesto del Citrix Ingress Controller. Utilice el siguiente comando:

      wget https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/dual-tier/manifest/tier-1-vpx-cic.yaml
      
    2. Modifique el archivo de manifiesto Citrix Ingress Controller e introduzca los valores para las siguientes variables de entorno:

      Variable de entorno Obligatorio u opcional Descripción
      NS_IP Mandatory (Obligatorio) La dirección IP del dispositivo Citrix ADC. Para obtener más información, consulte Requisitos previos.
      NS_USER y NS_PASSWORD Mandatory (Obligatorio) El nombre de usuario y la contraseña del dispositivo Citrix ADC VPX o MPX utilizado como dispositivo de entrada. Para obtener más información, consulte Requisitos previos.
      EULA Mandatory (Obligatorio) El acuerdo de licencia de usuario final. Especifique el valor como Yes.
      NIVEL DE REGISTRO Opcional Los niveles de registro para controlar los registros generados por el Citrix Ingress Controller. De forma predeterminada, el valor se establece en DEBUG. Los valores admitidos son: CRITICAL, ERROR, WARNING, INFO y DEBUG. Para obtener más información, consulte Niveles de registro
      NS_PROTOCOL y NS_PORT Opcional Define el protocolo y el puerto que debe utilizar el Citrix Ingress Controller para comunicarse con Citrix ADC. De forma predeterminada, el Citrix Ingress Controller usa HTTPS en el puerto 443. También puede usar HTTP en el puerto 80.
      clases-ingreso Opcional Si se utilizan varios equilibradores de carga de entrada para equilibrar la carga de diferentes recursos de entrada. Puede usar esta variable de entorno para especificar el Citrix Ingress Controller para configurar Citrix ADC asociado a una clase de entrada específica. Para obtener información sobre las clases Ingress, consulte Soporte de clases Ingress
      NS_VIP Opcional El Citrix Ingress Controller utiliza la dirección IP proporcionada en esta variable de entorno para configurar una dirección IP virtual para el Citrix ADC que recibe el tráfico de entrada. Nota: NS_VIP tiene prioridad sobre la anotación frontend-ip.
    3. Implemente el archivo de manifiesto del Citrix Ingress Controller actualizado. Utilice el siguiente comando:

      kubectl create -f tier-1-vpx-cic.yaml
      
  7. Cree un objeto de entrada para Citrix ADC de nivel 1. Utilice el siguiente comando:

    kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/dual-tier/manifest/ingress-tier-1-vpx.yaml
    
  8. Actualice los detalles del servidor DNS en la nube o en las instalaciones para dirigir su sitio web a la VIP del Citrix ADC de nivel 1.

    Por ejemplo: citrix-ingress.com 192.250.9.1

    ¿Dónde 192.250.9.1 está el VIP de Citrix ADC de nivel 1 y citrix-ingress.com es el microservicio que se ejecuta en el clúster de Kubernetes?

  9. Acceda a la URL del microservicio para verificar la implementación.

Configurar la implementación de doble nivel mediante el archivo de manifiesto de implementación en un solo paso

Para una implementación sencilla, el repositorio del Citrix Ingress Controller incluye un manifiesto de implementación todo en uno. Puede descargar el archivo y actualizarlo con valores para las siguientes variables de entorno e implementar el archivo de manifiesto.

Nota:

Asegúrese de haber completado los pasos 1-2 del proceso de configuración.

Lleve a cabo lo siguiente:

  1. Descargue el archivo de manifiesto de implementación todo en uno. Utilice el siguiente comando:

    wget https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/dual-tier/manifest/all-in-one-dual-tier-demo.yaml
    
  2. Modifique el archivo de manifiesto de implementación todo en uno e introduzca los valores para las siguientes variables de entorno:

    Variable de entorno Obligatorio u opcional Descripción
    NS_IP Mandatory (Obligatorio) La dirección IP del dispositivo Citrix ADC. Para obtener más información, consulte Requisitos previos.
    NS_USER y NS_PASSWORD Mandatory (Obligatorio) El nombre de usuario y la contraseña del dispositivo Citrix ADC VPX o MPX utilizado como dispositivo de entrada. Para obtener más información, consulte Requisitos previos.
    EULA Mandatory (Obligatorio) El acuerdo de licencia de usuario final. Especifique el valor como Yes.
    NIVEL DE REGISTRO Opcional Los niveles de registro para controlar los registros generados por el Citrix Ingress Controller. De forma predeterminada, el valor se establece en DEBUG. Los valores admitidos son: CRITICAL, ERROR, WARNING, INFO y DEBUG. Para obtener más información, consulte Niveles de registro
    NS_PROTOCOL y NS_PORT Opcional Define el protocolo y el puerto que debe utilizar el Citrix Ingress Controller para comunicarse con Citrix ADC. De forma predeterminada, el Citrix Ingress Controller usa HTTPS en el puerto 443. También puede usar HTTP en el puerto 80.
    clases-ingreso Opcional Si se utilizan varios equilibradores de carga de entrada para equilibrar la carga de diferentes recursos de entrada. Puede usar esta variable de entorno para especificar el Citrix Ingress Controller para configurar Citrix ADC asociado a una clase de entrada específica. Para obtener información sobre las clases Ingress, consulta [Soporte de clases Ingress] (/en-us/citrix-k8s-ingress-controller/configure/ingress-classes.html
    NS_VIP Opcional El Citrix Ingress Controller utiliza la dirección IP proporcionada en esta variable de entorno para configurar una dirección IP virtual para el Citrix ADC que recibe el tráfico de entrada. Nota: NS_VIP actúa como alternativa cuando la anotación frontend-ip no se proporciona en Ingress yaml. No se admite para el servicio Type Loadbalancer.
  3. Implemente el archivo manifiesto de implementación todo en uno actualizado. Utilice el siguiente comando:

    kubectl create -f all-in-one-dual-tier-demo.yaml
    
Cómo configurar la implementación de doble nivel