Ingress Controller de Citrix ADC

Implementar el Citrix Ingress Controller con Red Hat OpenShift Operators

Un operador es un conjunto de herramientas de código abierto diseñado para empaquetar, implementar y administrar aplicaciones nativas de Kubernetes de una manera más eficaz, automatizada y escalable.

En este tema se trata información sobre cómo implementar el Citrix Ingress Controller mediante operadores de OpenShift.

Opciones de implementación

Según cómo quiera usar Citrix ADC, hay dos formas de implementar el Citrix Ingress Controller en un clúster de OpenShift:

  • Como pod independiente en el clúster de Kubernetes: en este modo, puede controlar el dispositivo Citrix ADC MPX o VPX implementado fuera del clúster.
  • Como contenedor sidecar junto con Citrix ADC CPX en el mismo pod: en este modo, el Citrix Ingress Controller configura Citrix ADC CPX.

Implementar el Citrix Ingress Controller como un pod independiente en el clúster de OpenShift para dispositivos Citrix ADC MPX o VPX

Con el operador del Citrix Ingress Controller, puede implementar el Citrix Ingress Controller como un pod independiente en el clúster de OpenShift. El controlador de Citrix Ingress configura Citrix ADC VPX o MPX, que se implementa como entrada o enrutador para una aplicación que se ejecuta en el clúster de OpenShift. En el siguiente diagrama se explica la topología:

Topology

Requisitos previos

  • Se implementó Red Hat OpenShift versión 4.1 o posterior.
  • Determine la dirección IP de NS_IP que necesita el controlador para comunicarse con el dispositivo. La dirección IP puede ser cualquiera de las siguientes, según el tipo de implementación de Citrix ADC:
    • (Dispositivos independientes) NSIP: la dirección IP de administración de un dispositivo Citrix ADC independiente. Para obtener más información, consulte Direccionamiento IP en Citrix ADC
    • (Dispositivos en modo de alta disponibilidad) SNIP: la dirección IP de la subred. Para obtener más información, consulte Direccionamiento IP en Citrix ADC
    • (Dispositivos en modo clúster) CLIP: la dirección IP de administración de clústeres (CLIP) para una implementación de Citrix ADC en clúster. Para obtener más información, consulte Direccionamiento IP para un clúster
  • El nombre de usuario y la contraseña del dispositivo Citrix ADC VPX o MPX utilizado como dispositivo de entrada. El dispositivo Citrix ADC debe tener una cuenta de usuario del sistema (no predeterminada) con ciertos privilegios para que el Citrix Ingress Controller pueda configurar el dispositivo Citrix ADC VPX o MPX. Para obtener instrucciones sobre cómo crear la cuenta de usuario del sistema en Citrix ADC, consulte Crear cuenta de usuario del sistema para el Citrix Ingress Controller de Citrix en Citrix ADC

    Puede pasar directamente el nombre de usuario y la contraseña como variables de entorno al controlador o usar secretos de Kubernetes (recomendado). Si quieres usar secretos de Kubernetes, crea un secreto para el nombre de usuario y la contraseña con el siguiente comando:

     kubectl create secret  generic nslogin --from-literal=username='cic' --from-literal=password='mypassword'
    

Especificar los registros de imágenes permitidos a los que pueden acceder los operadores y los pods

Debe especificar los registros de imágenes a los que deben tener acceso los operadores y los pods para extraer las imágenes. Puede especificar la lista de registros permitidos actualizando el archivo de definición de recursos image.config.openshift.io/cluster personalizado. Asegúrese de abrir el clúster de Openshift antes de actualizar la definición de recursos image.config.openshift.io/cluster personalizada.

Para actualizar la definición image.config.openshift.io/cluster de recursos personalizada, lleve a cabo los siguientes pasos:

  1. Ejecute este comando:

    oc edit image.config.openshift.io/cluster
    
  2. Modifique el campo spec de la siguiente manera:

    spec:
      registrySources:
        allowedRegistries:
        - quay.io
        - registry.redhat.io
        - registry.connect.redhat.com
        - registry.access.redhat.com
        - image-registry.openshift-image-registry.svc:5000
    

Nota:

Si su aplicación necesita extraer imágenes de registros distintos a los especificados aquí, puede agregar esos registros. Nota:

Los cambios se aplican a todos los nodos maestro y trabajador y el nodo se encuentra en estado “No listo” durante algún tiempo después de actualizar la CRD. Debe esperar a que todos los nodos estén en estado “Listo” antes de continuar con el siguiente paso. Puede ver el estado de los nodos mediante el comando oc get nodes:

Crear una cuenta de usuario del sistema para el Citrix Ingress Controller de Citrix en Citrix ADC

El Citrix Ingress Controller configura el dispositivo Citrix ADC (MPX o VPX) mediante una cuenta de usuario del sistema de Citrix ADC. La cuenta de usuario del sistema debe tener ciertos privilegios para que el Citrix Ingress Controller tenga permiso para configurar lo siguiente en Citrix ADC:

  • Agregar, eliminar o ver un servidor virtual de conmutación de contenido (CS)
  • Configurar directivas y acciones de CS
  • Configurar el servidor virtual de equilibrio de carga (LB)
  • Configurar grupos de servicios
  • Configurar claves de certificado SSL
  • Configurar rutas
  • Configurar monitores de usuario
  • Agregar archivo del sistema (para cargar claves de certificado SSL desde Kubernetes)
  • Configurar la dirección IP virtual (VIP)
  • Comprobar el estado del dispositivo Citrix ADC

Para crear la cuenta de usuario del sistema, lleve a cabo lo siguiente:

  1. Inicie sesión en el dispositivo Citrix ADC. Lleve a cabo lo siguiente:
    1. Use un cliente SSH, como PuTTY, para abrir una conexión SSH al dispositivo Citrix ADC.

    2. Inicie sesión en el dispositivo con las credenciales de administrador.

  2. Cree la cuenta de usuario del sistema mediante el siguiente comando:

    add system user <username> <password>
    

    Por ejemplo:

    add system user cic mypassword
    
  3. Cree una directiva para proporcionar los permisos requeridos a la cuenta de usuario del sistema. Utilice el siguiente comando:

    add cmdpolicy cic-policy ALLOW '^(\?!shell)(\?!sftp)(\?!scp)(\?!batch)(\?!source)(\?!.*superuser)(\?!.*nsroot)(\?!install)(\?!show\s+system\s+(user|cmdPolicy|file))(\?!(set|add|rm|create|export|kill)\s+system)(\?!(unbind|bind)\s+system\s+(user|group))(\?!diff\s+ns\s+config)(\?!(set|unset|add|rm|bind|unbind|switch)\s+ns\s+partition).*|(^install\s*(wi|wf))|(^\S+\s+system\s+file)^(\?!shell)(\?!sftp)(\?!scp)(\?!batch)(\?!source)(\?!.*superuser)(\?!.*nsroot)(\?!install)(\?!show\s+system\s+(user|cmdPolicy|file))(\?!(set|add|rm|create|export|kill)\s+system)(\?!(unbind|bind)\s+system\s+(user|group))(\?!diff\s+ns\s+config)(\?!(set|unset|add|rm|bind|unbind|switch)\s+ns\s+partition).*|(^install\s*(wi|wf))|(^\S+\s+system\s+file)'
    

    Nota: La cuenta de usuario del sistema tendría privilegios en función de la directiva de comandos que defina.

    La directiva de comandos mencionada en el paso 3 es similar a la directiva de sysAdmin comandos integrada con otro permiso para cargar archivos.

    En la especificación de directiva de comandos proporcionada, los caracteres especiales que deben escaparse ya se omiten para copiar y pegar fácilmente en la línea de comandos de Citrix ADC.

    Para configurar la directiva de comandos del asistente de configuración (GUI) de Citrix ADC, utilice la siguiente especificación de directiva de comandos.

    ^(?!shell)(?!sftp)(?!scp)(?!batch)(?!source)(?!.*superuser)(?!.*nsroot)(?!install)(?!show\s+system\s+(user|cmdPolicy|file))(?!(set|add|rm|create|export|kill)\s+system)(?!(unbind|bind)\s+system\s+(user|group))(?!diff\s+ns\s+config)(?!(set|unset|add|rm|bind|unbind|switch)\s+ns\s+partition).*|(^install\s*(wi|wf))|(^\S+\s+system\s+file)^(?!shell)(?!sftp)(?!scp)(?!batch)(?!source)(?!.*superuser)(?!.*nsroot)(?!install)(?!show\s+system\s+(user|cmdPolicy|file))(?!(set|add|rm|create|export|kill)\s+system)(?!(unbind|bind)\s+system\s+(user|group))(?!diff\s+ns\s+config)(?!(set|unset|add|rm|bind|unbind|switch)\s+ns\s+partition).*|(^install\s*(wi|wf))|(^\S+\s+system\s+file)
    
  4. Enlazar la directiva a la cuenta de usuario del sistema mediante el siguiente comando:

    bind system user cic cic-policy 0
    

Implementar el Citrix Ingress Controller como un pod independiente mediante Operadores

Lleve a cabo lo siguiente:

  1. Inicie sesión en la consola de clúster de OpenShift 4.1.

  2. Implemente una aplicación Apache mediante la consola. Lleve a cabo lo siguiente:

    1. Vaya a Cargas de trabajo > Implementaciones > Crear implementación y use apache.yaml para crear la implementación.

      Implementación de aplicaciones

      NOTA:

      La aplicación Apache es solo para fines de demostración, puede modificar el archivo YAML según sus requisitos.

    2. Vaya a la sección Cargas de trabajo > Pods y asegúrese de que los pods de la aplicación Apache estén en funcionamiento.

      Pod de aplicaciones

  3. Cree un servicio para la aplicación Apache. Vaya a Redes > Servicios > Crear servicio y use apache-service.yaml para crear el servicio.

    Servicio de solicitud

  4. Cree un Ingress para la aplicación Apache. Vaya a Redes > Ingress > Crear Ingress y use apache-ingress-vpx.yaml para crear el ingreso. Asegúrese de actualizar el VIP de Citrix ADC VPX en el YAML de entrada antes de aplicarlo en el clúster.

    Ingresos de aplicaciones

  5. Vaya a Catálogo > OperatorHUB, seleccione el operador de Citrix Ingress Controller y haga clic en Instalar.

    Operador de Citrix Ingress Controller

    Install

    Tiene las siguientes opciones para suscribirse al operador de controlador de entrada de Citrix:

    • Todos los espacios de nombres del clúster (predeterminado): Permite que el operador del Citrix Ingress Controller se suscriba a todos los espacios de nombres presentes en el clúster de OpenShift y, por lo tanto, le permite iniciar el Citrix Ingress Controller desde cualquier espacio de nombres del clúster.
    • Un espacio de nombres específico en el clúster: Permite que el operador del Citrix Ingress Controller se suscriba al espacio de nombres seleccionado en el clúster de OpenShift. Puede iniciar la instancia del Citrix Ingress Controller solo en el espacio de nombres seleccionado.

    Para fines de demostración, puede suscribir el operador del Citrix Ingress Controller al espacio de nombres predeterminado.

    Suscripción a aplicaciones

    Espere hasta que el operador del Citrix Ingress Controller se haya suscrito correctamente.

    Confirmación de suscripción

  6. Vaya a la sección Cargas de trabajo > Pods y compruebe que el pod cic-operator esté en funcionamiento.

    Pod de aplicaciones en funcionamiento

  7. Vaya a Catálogo > Operadores instalados y seleccione el operador del Citrix Ingress Controller.

    Aplicación POD y CIC

  8. Haga clic en Citrix Ingress Controller y, en la ficha Información general, seleccione Crear nuevo en la opción para crear la CRD para el operador del Citrix Ingress Controller.

    Crear nueva

    Se muestra la definición YAML del controlador de entrada de Citrix.

    Listas de parámetros

    En la siguiente tabla se enumeran los parámetros obligatorios y opcionales y sus valores predeterminados que también se pueden configurar durante la instalación. Asegúrese de establecer el parámetro license.accept en yes y proporcionar la dirección IP de la instancia de Citrix ADC VPX en el parámetro nsIP.

    Parámetros Obligatorio u opcional Valor predeterminado Descripción
    license.accept Mandatory (Obligatorio) no Se establece yes para aceptar el acuerdo de licencia de usuario final del Citrix Ingress Controller.
    cic.image Mandatory (Obligatorio) quay.io/citrix/citrix-k8s-ingress-controller:1.26.7 La imagen del Citrix Ingress Controller.
    cic.pullPolicy Mandatory (Obligatorio) Siempre La directiva de extracción de imágenes del controlador de entrada de Citrix.
    loginFileName Mandatory (Obligatorio) nslogin La clave secreta para iniciar sesión en Citrix ADC VPX o MPX. Para obtener información sobre cómo crear las claves secretas, consulte Requisitos previos.
    nsIP Mandatory (Obligatorio) N/D La dirección IP del dispositivo Citrix ADC. Para obtener más información, consulte Prerequisites.
    nsVIP Opcional N/D La dirección IP virtual del dispositivo Citrix ADC.
    nsPort Opcional 443 El puerto utilizado por el Citrix Ingress Controller para comunicarse con Citrix ADC. Puede portar 80 para HTTP.
    nsProtocol Opcional HTTPS El protocolo utilizado por el Citrix Ingress Controller para comunicarse con Citrix ADC. También puede usar HTTP en el puerto 80.
    logLevel Opcional DEBUG El nivel de registro para controlar los registros generados por el Citrix Ingress Controller. Los niveles de registro admitidos son: CRITICAL, ERROR, WARNING, INFO y DEBUG. Para obtener más información, consulte Niveles de registro.
    kubernetesURL Opcional N/D La URL kube-apiserver que utiliza el Citrix Ingress Controller para registrar los eventos. Si no se especifica el valor, el Citrix Ingress Controller usa la dirección IP interna de kube-apiserver.
    ingressClass Opcional N/D Si se utilizan varios equilibradores de carga de entrada para equilibrar la carga de diferentes recursos de entrada. Puede usar este parámetro para especificar el Citrix Ingress Controller para configurar Citrix ADC asociado a una clase de entrada específica. Para obtener más información sobre la clase Ingress, consulte Soporte de clases Ingress.
    nodeWatch Opcional false Use el argumento si quiere configurar automáticamente la ruta de red desde el Citrix ADC VPX o MPX de entrada a los pods del clúster de Kubernetes. Para obtener más información, consulte Configurar automáticamente una ruta en la instancia de Citrix ADC.
    defaultSSLCert Opcional N/D Certificado SSL predeterminado que debe usarse como certificado no SNI en Citrix ADC.
    exporter.required Opcional false Use el argumento, si quiere ejecutar Exporter for Citrix ADC Stats junto con el Citrix Ingress Controller para extraer métricas para Citrix ADC VPX o MPX
    exporter.image Opcional quay.io/citrix/citrix-adc-metrics-exporter:1.4.6 La imagen de Exportador para Citrix ADC Stats.
    exporter.pullPolicy Opcional Siempre La directiva de extracción de la imagen Exporter for Citrix ADC Stats.
    exporter.ports.containerPort Opcional 8888 El puerto contenedor del exportador para Citrix ADC Stats.
    openshift Opcional true Defina este argumento si se utiliza el entorno OpenShift.

    Después de actualizar los valores de los parámetros requeridos, haga clic en Crear.

  9. Vaya a la sección Cargas de trabajo > Pods y asegúrese de que el pod citrix-ingress-controller esté en funcionamiento.

    Implementación correcta de Citrix Ingress Controller

  10. Verifique la implementación enviando tráfico como se muestra a continuación:

    curl http://citrix-ingress-operator.com --resolve citrix-ingress-operator.com:80:<VIP>
            
        It works!
    

Implemente el Citrix Ingress Controller como un sidecar con Citrix ADC CPX

Con el operador del Citrix Ingress Controller, puede implementar un Citrix ADC CPX con el Citrix Ingress Controller como sidecar. El controlador Citrix Ingress configura Citrix ADC CPX, que se implementa como entrada o enrutador para una aplicación que se ejecuta en el clúster de OpenShift. En el siguiente diagrama se explica la topología.

Topología CPX

Requisitos previos

Implemente el Citrix Ingress Controller como un sidecar con Citrix ADC CPX mediante operadores

Lleve a cabo lo siguiente:

  1. Inicie sesión en la consola de clúster de OpenShift 4.1.

  2. Implemente una aplicación Apache mediante la consola. Lleve a cabo lo siguiente:

    1. Vaya a Cargas de trabajo > Implementaciones > Crear implementación y use apache.yaml para crear la implementación.

      Implementación de aplicaciones

      NOTA:

      La aplicación Apache es solo para fines de demostración, puede modificar el archivo YAML según sus requisitos.

    2. Vaya a la sección Cargas de trabajo > Pods y asegúrese de que los pods de la aplicación Apache estén en funcionamiento.

      Pod de aplicaciones

  3. Cree un servicio para la aplicación Apache. Vaya a Redes > Servicios > Crear servicio y use apache-service.yaml para crear el servicio.

    Servicio de solicitud

  4. Cree un Ingress para la aplicación Apache. Vaya a Redes > Ingress > Create Ingress y use apache-ingress-cpx.yaml para crear el ingreso.

    Entrada CPX de aplicaciones

  5. Vaya a Catálogo > OperatorHub, seleccione el operador Citrix ADC CPX with Ingress Controller y haga clic en Instalar.

    Hub del operador

    Instalación del hub del operador

    Tiene las siguientes opciones para suscribirse al operador de controlador de entrada de Citrix:

    • Todos los espacios de nombres del clúster (predeterminado): Permite que el operador del Citrix Ingress Controller se suscriba a todos los espacios de nombres presentes en el clúster de OpenShift y, por lo tanto, le permite iniciar Citrix ADC CPX desde cualquier espacio de nombres del clúster.
    • Un espacio de nombres específico en el clúster: Permite que el operador del Citrix Ingress Controller se suscriba al espacio de nombres seleccionado en el clúster de OpenShift. Puede iniciar la instancia de Citrix ADC CPX solo en el espacio de nombres seleccionado.

    Para fines de demostración, puede suscribir el operador del Citrix Ingress Controller al espacio de nombres predeterminado.

    Subscription

    Espere hasta que el operador se haya suscrito correctamente.

    Subscription

  6. Vaya a la sección Cargas de trabajo > Pods y compruebe que el pod cic-operator esté en funcionamiento.

  7. Vaya a Catálogo > Operadores instalados y seleccione el operador del Citrix Ingress Controller.

    Aplicación POD y CIC

  8. Haga clic en Citrix ADC CPX with Ingress Controller y, en la ficha Información general, seleccione Crear nuevo en la opción para crear la CRD para Citrix ADC CPX con el operador Ingress Controller.

    Crear nueva

    Se muestra la definición YAML de Citrix ADC CPX con controlador de entrada.

    Listas de parámetros

    En la siguiente tabla se enumeran los parámetros obligatorios y opcionales y sus valores predeterminados que puede configurar durante la instalación. Asegúrese de establecer el parámetro license.accept en yes.

    Parámetros Obligatorio u opcional Valor predeterminado Descripción
    license.accept Mandatory (Obligatorio) no Se establece yes para aceptar el acuerdo de licencia de usuario final del Citrix Ingress Controller.
    cpx.image Mandatory (Obligatorio) quay.io/citrix/citrix-k8s-cpx-ingress:13.0-83.27 La imagen de Citrix ADC CPX.
    cpx.pullPolicy Mandatory (Obligatorio) Siempre La directiva de extracción de imágenes CPX de Citrix ADC.
    lsIP Opcional N/A Proporcione la dirección IP de Citrix Application Delivery Management (ADM) para obtener la licencia de Citrix ADC CPX. Para obtener más información, consulte Licencias
    lsPort Opcional 27000 Puerto Citrix ADM si se usa un puerto no predeterminado.
    platform Opcional N/D Licencia de plataforma. La plataforma es CP1000.
    cic.image Mandatory (Obligatorio) quay.io/citrix/citrix-k8s-ingress-controller:1.21.9 La imagen del Citrix Ingress Controller.
    cic.pullPolicy Mandatory (Obligatorio) Siempre La directiva de extracción de imágenes del controlador de entrada de Citrix.
    cic.required Opcional true Especifica este parámetro para ejecutar el Citrix Ingress Controller como un sidecar con Citrix ADC CPX
    defaultSSLCert Opcional N/A Certificado SSL predeterminado que debe usarse como certificado no SNI en Citrix ADC.
    exporter.required Opcional false Use el argumento si quiere ejecutar el Exportador para Citrix ADC Stats junto con el Citrix Ingress Controller para extraer métricas para Citrix ADC CPX
    exporter.image Opcional quay.io/citrix/citrix-adc-metrics-exporter:1.4.6 La imagen del exportador para Citrix ADC Stats.
    exporter.pullPolicy Opcional Siempre La directiva de extracción de imágenes para Exporter for Citrix ADC Stats
    exporter.ports.containerPort Opcional 8888 El puerto contenedor de Exporter para Citrix ADC Stats.
    ingressClass Opcional N/A Si se utilizan varios equilibradores de carga de entrada para equilibrar la carga de diferentes recursos de entrada. Puede usar este parámetro para especificar el Citrix Ingress Controller para configurar Citrix ADC asociado a una clase de entrada específica.
    openshift Opcional true Defina este argumento si se utiliza el entorno OpenShift.

    Después de actualizar los valores de los parámetros requeridos, haga clic en Crear.

  9. Vaya a la sección Cargas de trabajo > Pods y asegúrese de que el pod cpx-ingress esté en funcionamiento.

    Implementación correcta de Citrix Ingress Controller

  10. Verifique la implementación enviando tráfico. Lleve a cabo lo siguiente:

    1. Obtenga los detalles de NodePort mediante el siguiente comando:

      oc get svc

    2. Use NodePort cpx-service y envíe el tráfico como se muestra en el siguiente comando:

      curl http://citrix-ingress-operator.com:<NodePort> --resolve citrix-ingress-operator.com:<NodePort>:<Master-Node-IP>
      <html><body><h1>It works!</h1></body></html>
      
Implementar el Citrix Ingress Controller con Red Hat OpenShift Operators