Application Delivery Management

Administrar la configuración de Kubernetes Ingress en NetScaler ADM

Kubernetes (K8s) es una plataforma de orquestación de contenedores de código abierto que automatiza la implementación, el escalado y la administración de aplicaciones nativas de la nube.

Kubernetes proporciona la función Ingress, que permite que el tráfico de clientes fuera del clúster acceda a los microservicios de una aplicación que se ejecuta dentro del clúster de Kubernetes. Las instancias de ADC pueden actuar como entrada a las aplicaciones que se ejecutan dentro de un clúster de Kubernetes. Las instancias de ADC pueden equilibrar la carga y enrutar el tráfico de norte a sur desde los clientes a cualquier microservicio dentro del clúster de Kubernetes.

Nota

  • Citrix ADM admite la función Ingress en los clústeres con la versión 1.14 y superior de Kubernetes.
  • NetScaler ADM admite dispositivos NetScaler ADC VPX y MPX como dispositivos de ingreso.
  • En el entorno de Kubernetes, la carga de instancia de NetScaler ADC equilibra solo el tipo de servicio “NodePort”.

Puede configurar varias instancias ADC para que actúen como dispositivos de ingreso en el mismo clúster o en distintos clústeres o espacios de nombres. Después de configurar las instancias, puede asignar cada instancia a diferentes aplicaciones en función de la directiva de Ingress.

Puede crear e implementar una configuración de Ingress con API o kubectl de Kubernetes. También puede configurar e implementar un Ingress desde NetScaler ADM.

Puede especificar los siguientes aspectos de la integración de Kubernetes en ADM:

  • Clúster: Puede registrar o anular el registro de clústeres de Kubernetes para los que ADM puede implementar configuraciones de Ingress. Cuando registre un clúster en NetScaler ADM, especifique la información del servidor de la API de Kubernetes. A continuación, seleccione un agente de ADM que pueda llegar al clúster de Kubernetes e implementar configuraciones de Ingress.

  • Directivas: las directivas de entrada se utilizan para seleccionar la instancia de ADC en función del clúster o el espacio de nombres para implementar una configuración de entrada. Especifique la información del clúster, el sitio y la instancia cuando agregue una directiva.

  • Configuración de ingreso: Esta configuración es la configuración de ingreso de Kubernetes, que incluye las reglas de conmutación de contenido y las rutas URL correspondientes de los microservicios y sus puertos. También puede especificar los certificados SSL/TLS (para descargar el procesamiento SSL en la instancia de ADC) con los recursos secretos de Kubernetes.

NetScaler ADM asigna automáticamente las configuraciones de ingreso a instancias de ADC mediante directivas de ingreso.

Para cada configuración de Ingress correcta, NetScaler ADM genera un StyleBook ConfigPack. El ConfigPack representa la configuración ADC aplicada a la instancia de ADC que corresponde a la configuración de Ingress. Para ver el ConfigPack, vaya a Aplicaciones > StyleBooks > Configuraciones.

Antes de comenzar

Para usar instancias de NetScaler ADC como dispositivos de entrada en clústeres de Kubernetes, asegúrese de tener:

  • Kubernetes agrupamiento en su lugar.

  • Cluster Kubernetes registrado en NetScaler ADM.

Configurar NetScaler ADM con un token secreto para administrar un clúster de Kubernetes

Para que NetScaler ADM pueda recibir eventos de Kubernetes, debe crear una cuenta de servicio en Kubernetes para NetScaler ADM. Además, configure la cuenta de servicio con los permisos RBAC necesarios en el clúster.

  1. Cree una cuenta de servicio para NetScaler ADM. Por ejemplo, el nombre de la cuenta de servicio puede sercitrixadm-sa. Para crear una cuenta de servicio, consulte Usar varias cuentas de servicio.

  2. Utilice elcluster-admin rol para enlazar la cuenta de servicio NetScaler ADM. Este enlace concede un valor ClusterRole en todo el clúster a una cuenta de servicio. A continuación, se muestra un comando de ejemplo para vincular un rol cluster-admin a la cuenta de servicio.

    kubectl create clusterrolebinding citrixadm-sa-admin --clusterrole=cluster-admin --serviceaccount=default:citrixadm-sa
    <!--NeedCopy-->
    

    Después de vincular la cuenta de servicio NetScaler ADM al rol cluster-admin, la cuenta de servicio tiene acceso en todo el clúster. Para obtener más información, consulte kubectlCreateclusterrolebinding.

  3. Obtenga el token de la cuenta de servicio creada.

    Por ejemplo, ejecute el siguiente comando para ver el token de la cuenta de servicio citrixadm-sa:

    kubectl describe sa citrixadm-sa
    <!--NeedCopy-->
    
  4. Ejecute el siguiente comando para obtener la cadena secreta del token:

    kubectl describe secret <token-name>
    <!--NeedCopy-->
    

Agregar el clúster de Kubernetes en NetScaler ADM

Después de configurar un agente NetScaler ADM y configurar rutas estáticas, debe registrar el clúster de Kubernetes en NetScaler ADM.

Para registrar el clúster de Kubernetes:

  1. Inicie sesión en Citrix ADM con credenciales de administrador.

  2. Vaya a Orchestration > Kubernetes > Clúster. Se muestra la página Clústeres.

  3. Haga clic en Agregar.

  4. En la página Agregar clúster, especifique los siguientes parámetros:

    1. Nombre: especifique un nombre de su elección.

    2. URL del servidor API - Puede obtener los detalles de la URL del servidor API desde el nodo principal de Kubernetes.

      1. En el nodo principal de Kubernetes, ejecute el comando kubectl cluster-info.

        URL del servidor API

      2. Introduzca la URL que aparece para “Kubernetes master se está ejecutando en. “

    3. Token de autenticación: especifique la cadena de token de autenticación que se obtiene al configurar NetScaler ADM para administrar un clúster de Kubernetes. El token de autenticación es necesario para validar el acceso para la comunicación entre el clúster de Kubernetes y NetScaler ADM. Para generar un token de autenticación:

      1. En el nodo principal de Kubernetes, ejecute los siguientes comandos:

        kubectl describe secret <token-name>
        <!--NeedCopy-->
        
      2. Copie el token que se genera y péguelo como token de autenticación

        Para obtener más información, consulte la documentación de Kubernetes.

    4. Seleccione el agente de la lista.

    5. Haga clic en Crear.

      agregar clúster

Definir una directiva de ingreso

La directiva Ingress decide qué NetScaler ADC se utiliza para implementar una configuración de Ingress, basada en el clúster de entrada o el espacio de nombres.

  1. Vaya a Orchestration > Kubernetes > Policy.

  2. Haga clic en Add para crear una directiva.

    1. Especifique el nombre de la directiva.

    2. Defina las condiciones para implementar la configuración de Ingress en un clúster de Kubernetes. Estas condiciones suelen basarse en el clúster de entrada y el espacio de nombres.

    3. En el panel Infraestructura,

      • Sitio: Seleccione un sitio de la lista.

      • Instancia: Seleccione la instancia de ADC de la lista.

      Las listas de sitios e instancias rellenan las opciones en función de la selección de clústeres en el panel Condiciones.

      Estas listas muestran los sitios o las instancias que están asociados con el agente NetScaler ADM configurado con el clúster de Kubernetes.

    4. En Elegir red, seleccione la red desde la que ADM asigna automáticamente las direcciones IP virtuales a una configuración de entrada.

      Esta lista muestra las redes creadas en Redes > IPAM .

    5. Haga clic en Crear.

Implementar la configuración de Ingress

Puede implementar la configuración de Ingress desde Kubernetes mediante kubectl, la API de Kubernetes u otras herramientas. También puede implementar la configuración de Ingress directamente desde NetScaler ADM.

  1. Vaya a Orchestration > Kubernetes > Entradas.

  2. Haga clic en Agregar.

  3. En el campo Crear entrada, especifique los siguientes detalles:

    1. Especifique el nombre del Ingress.

    2. En Clúster, selecciona el clúster de Kubernetes en el que quieres implementar un Ingress.

    3. Seleccione el Espacio de nombres de clúster en la lista. En este campo se enumeran los espacios de nombres que están presentes en el clúster de Kubernetes especificado.

    4. Si lo desea, seleccione Asignar dirección IP frontend automáticamente.

    5. Seleccione Protocolo de entrada en la lista. Si selecciona HTTPS, especifique el secreto de TLS.

      Este secreto incrusta el recurso secreto de Kubernetes que incorpora el certificado HTTPS y la clave privada.

      Una entrada HTTPS requiere un secreto basado en TLS configurado en el clúster de Kubernetes. Especifique los campos tls.crt y tls.key para incluir el certificado del servidor y la clave del certificado, respectivamente.

    6. Para el enrutamiento de contenido, especifique los siguientes detalles:

      • Rutas de URL: Especifique la ruta que se asocia con el servicio y el puerto de Kubernetes.

      • Servicio de Kubernetes: Especifique el servicio deseado.

      • Puerto: Especifique el puerto de servicio.

      • Método LB: Seleccione el método de equilibrio de carga preferido para el servicio de Kubernetes seleccionado.

        El método seleccionado actualiza la especificación de entrada con una anotación apropiada. Por ejemplo, si selecciona el método ROUNDROBIN, la anotación de Citrix aparece como sigue:

         "lbmethod":"ROUNDROBIN"
         <!--NeedCopy-->
        
      • Tipo de persistencia: Seleccione el tipo de persistencia de equilibrio de carga preferido para el servicio de Kubernetes seleccionado.

        El tipo de persistencia seleccionado actualiza la especificación de entrada con una anotación apropiada. Por ejemplo, si selecciona COOKIEINSERT, la anotación de Citrix aparece de la siguiente manera:

         "persistenceType":"COOKIEINSERT"
         <!--NeedCopy-->
        

      Haga clic en Agregar para agregar más rutas de URL y puertos a la configuración de Ingress.

      Agregar reglas de enrutamiento de contenido

      Después de la implementación, la configuración de Ingress redirige el tráfico del cliente a un servicio específico en función de lo siguiente:

      • La ruta URL y el puerto solicitados.
      • El método LB y el tipo de persistencia definidos.

      Nota

      Se espera que los servicios de Kubernetes utilizados en una configuración de ingreso sean de tipo NodePort.

    7. Si lo desea, especifique una descripción de entrada.

    8. haga clic en Implementar

      Si quiere revisar la configuración antes de implementar, haga clic en Generar especificación de ingreso. La configuración de Ingress especificada aparece en formato YAML. Después de revisar la configuración, haga clic en Implementar.

Nota Aplique licencias a los servidores virtuales que se crean mediante configuraciones de Ingress. Para aplicar la licencia, lleve a cabo los siguientes pasos:

  1. Vaya a Sistema > Licencias y análisis .
  2. En Resumen de licencia del servidor virtual, habilite la selección automática de servidores virtuales.
Administrar la configuración de Kubernetes Ingress en NetScaler ADM