Diseño de referencia validado de Citrix ADC CPX en Kubernetes con Diamanti y Nirmata

Características y funciones por probar

Casos de prueba: CPX como controlador de ingreso y dispositivo para Norte-Sur y Horquilla Este-Oeste:

Configuración para todos los casos de prueba excepto VPX como Norte-Sur:

  • Dos CPX en un clúster (CPX-1, CPX-2)
  • ADM como servidor de licencias
  • Contenedor exportador Prometheus en un clúster
  • Servidor Prometheus y Grafana (ya sea como pods en Kubernetes o externos al servidor de Kubernetes)
  • Varias aplicaciones front-end
  • Varias aplicaciones de back-end

I. VPX como Norte-Sur

  1. VPX en una plataforma Diamanti front-end SDX

    • Pruebe la descarga de SSL y vuelva a cifrar con la inserción de X-Forward para cada conexión SSL
    • Inserción de X-Forward en sesiones SSL

II. CPX como dispositivo Norte-Sur

  1. CPX-1. Configure la entrada HTTPS para que admita dos o tres aplicaciones HTTPS con una clase de ingreso especificada:

    • Demostrar la creación de varias directivas de cambio de contenido: una por aplicación front-end.
    • Demuestre varios certificados comodín por CPX: un certificado comodín por aplicación.
    • Demuestre que CPX descarga y vuelve a cifrar el tráfico a las aplicaciones front-end.
    • Demostrar diferentes algoritmos de equilibrio de carga.
    • Demuestre persistencia en un pod.
  2. CPX-1. Configure una entrada TCP separada con la clase de ingreso especificada:

    • Inserte una aplicación TCP como MongoDB.
    • Muestra la creación de TCP VIP.
    • Muestra el tráfico del cliente TCP que llega al pod de MongoDB.
    • Mostrar la comprobación de estado de la aplicación TCP predeterminada.
  3. CPX-1. Configure una entrada TCP-SSL separada con la clase de ingreso especificada:

    • Demuestre la descarga y el re-cifrado de SSL para TCP-SSL VIP.
    • Repita el caso de prueba 2.
  4. CPX por aplicación. Uso de una clase de ingreso separada:

    • Repita los casos de prueba 1 a 3 utilizando el CPX-2 compatible con una sola aplicación.
  5. CPX por equipo. Uso de la clase de ingreso:

    • Asigna diferentes clases de ingreso para 2 equipos.
    • Demuestre el caso de prueba 1 como prueba de que CPX puede configurar reglas de ingreso para equipos individuales.
  6. Escalar automáticamente los pods front-end:

    • Aumente el tráfico a los pods front-end y asegúrese de que los pods se escalen automáticamente.
    • Demuestre que CPX-1 agrega nuevos pods al grupo de servicios.
    • Demostración para el VIP de ingreso de HTTPS.
  7. Compatibilidad con 4-7 vCPU:

    • Configure CPX-1 con 4 o 7 vCPU.
    • Mostrar prueba de rendimiento de TPS con HTTPS y BW con cifrado integral.

III. CPX como dispositivo Hairpin East-West

  1. CPX-1. Cree la entrada HTTPS para el tráfico Norte-Sur como se describe en la sección I.1:

    • Exponga la aplicación back-end a la aplicación front-end.
    • Muestra el tráfico entre ambas aplicaciones.
    • Exponga la aplicación de fondo a otra aplicación de fondo.
    • Muestra el tráfico entre las aplicaciones.
  2. CPX-1. Siga las instrucciones del paso 1. Además, muestre el cifrado de extremo a extremo:

    • Aplicación back-end a aplicación back-end cifrada con CPX-1 haciendo descarga y recifrado.
  3. Pods back-end de escalabilidad automática:

    • Demuestre que CPX-1 agrega pods de backend con escalado automático al grupo de servicios.

IV. Integración de CPX con Prometheus y Grafana

  1. Inserta el contenedor Prometheus en el clúster de Kubernetes:

    • Configure el contenedor con los contadores recomendados para la exportación de cada aplicación.
    • Demostrar contenedor exportador enviando datos de contador al servidor Prometheus.
    • Mostrar el panel de Grafana que ilustra los datos del servidor Prometheus procedentes de CPX.
    • El objetivo es demostrar que los desarrolladores pueden usar herramientas nativas de la nube que son de uso popular para DevOps.
  2. Demuestre la implementación gradual de la integración de Kubernetes:

    • Inserta una nueva versión de la aplicación en Nirmata.
    • Muestra a Kubernetes implementando una nueva versión de la aplicación en el clúster.
    • Demuestre que CPX responde a los comandos de implementación sucesivos de Kubernetes para llevar el 100% del tráfico de la versión anterior de la aplicación a la nueva versión de la aplicación.

Solución Citrix para la implementación de Citrix ADC CPX

  1. Protocolos personalizados: De forma predeterminada, Citrix INGRESS CONTROLLER automatiza la configuración con los protocolos predeterminados (HTTP/SSL). CITRIX INGRESS CONTROLLER puede configurar protocolos personalizados (TCP/SSL-TCP/UDP) mediante anotaciones.

    Anotaciones:

    ingress.citrix.com/insecure-service-type: "tcp" [Anotación al protocolo LB de selección]

    ingress.citrix.com/insecure-port: "53" [Anotación para admitir el puerto personalizado]

  2. Ajuste preciso de los parámetros de CS/LB/ServiceGroup: De forma predeterminada, Citrix INGRESS CONTROLLER configura ADC con los parámetros predeterminados. Los parámetros se pueden ajustar con la ayuda de las anotaciones entity-parameter (lb/servicegroup) de NetScaler ADC.

    Anotaciones:

    Método LB: ingress.citrix.com/lbvserver: '{"app-1":{"lbmethod":"ROUNDROBIN"}}'

    Persistencia: ingress.citrix.com/lbvserver: '{"app-1":{"persistencetype":"sourceip"}}'

    API de NITRO

  3. Cifrado SSL por aplicación: Citrix INGRESS CONTROLLER puede activar selectivamente el cifrado SSL para aplicaciones con la ayuda de anotaciones inteligentes.

    Anotaciones:

    ingress.citrix.com/secure_backend: '{"web-backend": "True"} [Anotación para habilitar el cifrado de forma selectiva por aplicación]

  4. Certificado predeterminado para la entrada: Citrix INGRESS CONTROLLER puede tomar el certificado predeterminado como argumento. Si la definición de ingreso no tiene el secreto, se toma el certificado predeterminado. El secreto debe crearse una vez en el espacio de nombres y, a continuación, todas las entradas que estén en el espacio de nombres podrán usarlo.

  5. Compatibilidad con clases de ingreso múltiple de Citrix: De forma predeterminada, Citrix INGRESS CONTROLLER escucha todos los objetos de ingreso en el clúster k8s. Podemos controlar la configuración de ADC (MPX/VPX de nivel 1 y CPX de nivel 2) con la ayuda de las anotaciones de las clases de ingreso. Esto ayuda a cada equipo a administrar las configuraciones de su ADC de forma independiente. La clase de ingreso puede ayudar a implementar soluciones para configurar ADC para un espacio de nombres en particular, así como un grupo de espacios de nombres. El soporte es más genérico en comparación con otros proveedores.

    Anotaciones:

    kubernetes.io/ingress.class: "citrix" [Notificar a CITRIX INGRESS CONTROLLER que solo configure el ingreso que pertenece a una clase en particular]

  6. Visibilidad: La solución de Citrix k8s está integrada con herramientas de visibilidad cncf como Prometheous/Grafana para la recopilación de métricas con el fin de mejorar la depuración y el análisis. El exportador de Citrix Prometheus puede poner métricas a disposición de Prometheus para su visibilidad con Grafana como gráficos de series temporales.

Para obtener más información sobre el uso de la arquitectura de microservicios, consulta el archivo README.md en GitHub. Puede encontrar los archivos .yaml en la carpeta Config.

Historia de POC

Hay tres equipos que ejecutan sus aplicaciones en el clúster de kubernetes. La configuración de cada equipo se administra de forma independiente en diferentes CPX con la ayuda de la clase de ingreso de Citrix.

Las aplicaciones de cada equipo se ejecutan en espacios de nombres separados (team-hotdrink, team-colddrink y team-redis) y todos los CPX se ejecutan en el espacio de nombres CPX.

team-hotdrink: Ingreso SSL/HTTP, persistencia, lbmethod, cifrado/descrifrado por aplicación, default-cert.

team-colddrink: Entrada SSL-TCP

team-redis: Entrada de TCP

Configuración de POC

image-cpx-deployment-01

Flujo de aplicaciones

Caso de uso de HTTP/SSL/SSL-TCP:

image-cpx-deployment-02

Caso de uso de TCP:

image-cpx-deployment-03

Obtener las imágenes de docker

Los comandos YAML proporcionados obtienen las imágenes del repositorio quay.

Las imágenes también se pueden extraer y almacenar en el repositorio local. Puede utilizarlos editando el parámetro Imagen en YAML.


Implementación paso a paso de aplicaciones y CPX con Nirmata

  1. Cargue los roles del clúster y los enlaces de roles del clúster en YAML y aplíquelos en el clúster mediante Nirmata (rbac.yaml).

    1. Vaya a la ficha Clusters.
    2. Seleccione el clúster.
    3. En la configuración, aplique YAML desde la opción Aplicar YAML.
  2. Cree el entorno para ejecutar CPX y las aplicaciones.

    1. Vaya a la ficha Entorno.
    2. Haga clic en la ficha Agregar entorno.
      • Seleccione el clúster y cree el entorno en el espacio de nombres compartido.

      image-cpx-deployment-04

    3. Crea los siguientes entornos para ejecutar Prometheus, CPX y aplicaciones para diferentes equipos.
      • Crear entorno: cpx
      • Crea un entorno: team-hotdrink
      • Crea un entorno: team-colddrink
      • Crear entorno: team-redis
  3. Cargue la aplicación .yaml con Nirmata.

    1. Vaya a la ficha Catálogo.
    2. Haga clic en Agregar aplicación.
    3. Haga clic en Agregar para agregar las aplicaciones.

      Agregar aplicación: team-hotdrink (team_hotdrink.yaml). Nombre de la aplicación: team-hotdrink.

      Agregar aplicación: team-colddrink (team_coldrink.yaml). Nombre de la aplicación: team-colddrink.

      Agregar aplicación: team-redis (team_redis.yaml). Nombre de la aplicación: team-redis.

      Agregar aplicación: cpx-svcacct (cpx_svcacct.yaml). Nombre de la aplicación: cpx-svcacct.

      Nota:

      CPX con Citrix INGRESS CONTROLLER incorporado requiere una cuenta de servicio en el espacio de nombres donde se está ejecutando. Para la versión actual en Nirmata, cree esto mediante cpx_svcacct.yaml en el entorno CPX.

      Agregar aplicación: cpx (cpx_wo_sa.yaml). Nombre de la aplicación: cpx.

  4. Ejecute el CPX con Nirmata.

    1. Vaya a la ficha Entorno y seleccione el entorno correcto.
    2. Haga clic en Ejecutar aplicación para ejecutar la aplicación.
    3. En el entorno CPX, ejecute la aplicación cpx-svcacct. Seleccione cpx-svcacct con el nombre de ejecución cpx-svcacct de la aplicación de catálogo.
    4. En el entorno CPX, ejecute la aplicación CPX. Seleccione cpx en la aplicación de catálogo.

    image-cpx-deployment-05

    Nota:

    Se necesitan un par de pequeñas soluciones para la implementación de CPX, porque la configuración utiliza una versión anterior de Nirmata.

    1. Al crear las implementaciones de CPX, no configure el serviceAccountName. serviceAccountName se puede agregar más tarde. Como solución alternativa, vuelva a implementar los pods automáticamente.
    2. Importe el secreto de TLS para la entrada directamente en el entorno. Esto garantiza que se conserve el campo type.
    1. Después de ejecutar la aplicación, vaya a la aplicación CPX.
    2. En la ficha Implementaciones > StatefulSets & DaemonSets, haga clic en la implementación cpx-ingress-colddrinks.
    3. En la página siguiente, modifique la plantilla de pod. Introduzca CPX en la cuenta de servicio.
    4. Vuelva a la aplicación CPX.
    5. Repita el mismo procedimiento para la implementación de cpx-ingress-hotdrinks y cpx-ingress-redis.

    Al aplicar la cuenta de servicio, se implementan de nuevo los pods. Espera a que aparezcan los pods y confirma si la cuenta de servicio se ha aplicado.

    Lo mismo se puede verificar mediante el uso de los siguientes comandos en el clúster Diamanti.

    
    [diamanti@diamanti-250 ~]$ kubectl get deployment -n cpx -o yaml | grep -i account
            serviceAccount: cpx
            serviceAccountName: cpx
            serviceAccount: cpx
    <!--NeedCopy-->
    

    Nota: Si no se aplica serviceAccount, cancele los pods CPX. La implementación que lo recrea genera serviceAccount.

    image-cpx-deployment-06

  5. Ejecute las aplicaciones con Nirmata.

    Aplicación team-hotdrink:

    1. Vaya a la ficha Entorno y seleccione el entorno correcto: team-hotdrink.
    2. En el entorno team-hotdrink, ejecute la aplicación team-hotddrink con el nombre de ejecución team-hotdrink. Seleccione team-hotdrink en la aplicación de catálogo.
    3. Vaya a la aplicación team-hotdrink. En la esquina superior derecha de la pantalla, haga clic en Configuración y seleccione Importar en la aplicación. Cargue hotdrink-secret.yaml.

    image-cpx-deployment-07

    aplicación team-colddrink:

    1. Vaya a la ficha Entorno y seleccione el entorno correcto: team-colddrink.
    2. En el entorno team-colddrink, ejecute la aplicación team-coldddrink con el nombre de ejecución team-colddrink. Seleccione team-hotdrink en la aplicación de catálogo.
    3. Vaya a la aplicación team-colddrink. En la esquina superior derecha de la pantalla, haga clic en Configuración y seleccione Importar en la aplicación. Cargue colddrink-secret.yaml.

    aplicación team-redis:

    1. Vaya a la ficha Entorno y seleccione el entorno correcto: team-redis.
    2. En el entorno team-colddrink, ejecute una aplicación con el nombre de ejecución team-redis. Seleccione team-redis en la aplicación de catálogo.
      • En el entorno team-redis, ejecute una aplicación con el nombre de ejecución team-redis.

Comandos en VPX para exponer CPX de nivel 2

Nivel 1 VPX debe hacer cifrado/descrifrado SSL e insertar el encabezado X-Forward mientras se envía al CPX de Nivel 2. La configuración de nivel 1 debe realizarse manualmente. El encabezado X-Forward se puede insertar con -cip ENABLED en servicegroup. Abra config.txt.

Crea un csverver:

Cargue certkey en Citrix ADC: wild.com-key.pem, wild.com-cert.pem

add cs vserver frontent_grafana HTTP <CS_VSERVER_IP> 80 -cltTimeout 180
<!--NeedCopy-->

Exponga www.hotdrinks.com, www.colddrinks.com, www.guestbook.com en VPX de nivel 1:

add serviceGroup team_hotdrink_cpx SSL -cip ENABLED
add serviceGroup team_colddrink_cpx SSL -cip ENABLED
add serviceGroup team_redis_cpx HTTP
add ssl certKey cert -cert "wild-hotdrink.com-cert.pem" -key "wild-hotdrink.com-key.pem"
add lb vserver team_hotdrink_cpx HTTP 0.0.0.0 0
add lb vserver team_colddrink_cpx HTTP 0.0.0.0 0
add lb vserver team_redis_cpx HTTP 0.0.0.0 0
add cs vserver frontent SSL 10.106.73.218 443
add cs action team_hotdrink_cpx -targetLBVserver team_hotdrink_cpx
add cs action team_colddrink_cpx -targetLBVserver team_colddrink_cpx
add cs action team_redis_cpx -targetLBVserver team_redis_cpx
add cs policy team_hotdrink_cpx -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.hotdrinks.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action team_hotdrink_cpx
add cs policy team_colddrink_cpx -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.colddrinks.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action team_colddrink_cpx
add cs policy team_redis_cpx -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.guestbook.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action team_redis_cpx
bind lb vserver team_hotdrink_cpx team_hotdrink_cpx
bind lb vserver team_colddrink_cpx team_colddrink_cpx
bind lb vserver team_redis_cpx team_redis_cpx
bind cs vserver frontent -policyName team_hotdrink_cpx -priority 10
bind cs vserver frontent -policyName team_colddrink_cpx -priority 20
bind cs vserver frontent -policyName team_redis_cpx -priority 30
bind serviceGroup team_hotdrink_cpx 10.1.3.8 443
bind serviceGroup team_colddrink_cpx 10.1.2.52 443
bind serviceGroup team_redis_cpx 10.1.2.53 80
bind ssl vserver frontent -certkeyName cert
<!--NeedCopy-->

Actualice la dirección IP a las IP del pod CPX para el grupo de servicios:

root@ubuntu-211:~/demo-nimata/final/final-v1# kubectl get pods -n cpx -o wide
NAME                                      READY     STATUS    RESTARTS   AGE       IP             NODE
cpx-ingress-colddrinks-5bd94bff8b-7prdl   1/1       Running   0          2h        10.1.3.8   ubuntu-221
cpx-ingress-hotdrinks-7c99b59f88-5kclv    1/1       Running   0          2h        10.1.2.52  ubuntu-213
cpx-ingress-redis-7bd6789d7f-szbv7        1/1       Running   0          2h        10.1.2.53  ubuntu-213
<!--NeedCopy-->

image-cpx-deployment-08

  • Para acceder a www.hotdrinks.com, www.colddrinks.com, www.guestbook.com, el archivo hosts (de la máquina desde la que se accede a las páginas) debe adjuntarse con los siguientes valores:

     <CS_VSERVER_IP>      www.hotdrinks.com
    
     <CS_VSERVER_IP>      www.colddrinks.com
    
     <CS_VSERVER_IP>      www.guestbook.com
    

    Una vez hecho esto, se puede acceder a las aplicaciones visitando: www.hotdrinks.com, www.colddrinks.com, www.guestbook.com

Validación de la configuración de CPX de nivel 2

Para validar la configuración de CPX, vaya al entorno de CPX. Seleccione la aplicación en ejecución de CPX.

Seleccione la implementación cpx-ingress-hotdrinks y, a continuación, haga clic en el pod cpx-ingress-hotdrinks-xxxx-xxxx.

En la página siguiente, vaya al contenedor en ejecución e inicie la terminal paracpx-ingress-hotdrinks escribiendo el comando “bash”.

image-cpx-deployment-09

image-cpx-deployment-10

Cuando el terminal se conecte, valide la configuración mediante el comando normal de NetScaler a través de cli_script.sh.

  • cli_script.sh “sh cs vs”
  • cli_script.sh “sh lb vs”
  • cli_script.sh “grupo de servicios sh”

La validación se puede realizar para otro despliegue de CPX para team-colddrink y team-mongodb de la misma manera.

Realizar escalamiento ascendente/descendente

Para realizar el escalado ascendente/descendente:

  1. Vaya al entorno team-hotdrink. Seleccione la aplicación team-hotdrink en ejecución.
  2. Haga clic en la implementación frontend-hotdrinks.
  3. En la página siguiente, haga clic en Actualizar réplicas. Auméntelo a 10.

Consulte: Validación de la configuración CPX de nivel 2 para comprobar la configuración en CPX (implementación: cpx-ingress-hotdrinks).

  1. Vaya al entorno CPX. Seleccione una aplicación CPX en ejecución.
  2. Haga clic en la implementación cpx-ingress-hotdrinks.
  3. Haga clic en el pod cpx-ingress-hotdrinks-xxxx-xxxx.
  4. En la página siguiente, vaya al contenedor en ejecución e inicie la terminal paracpx-ingress-hotdrinks escribiendo el comando “bash”.
  5. cli_script.sh "sh servicegroup < servicegroup name >".

image-cpx-deployment-11

Realizar actualizaciones sucesivas

Para realizar actualizaciones sucesivas:

  1. Vaya al entorno team-hotdrink. Seleccione la aplicación team-hotdrink en ejecución.
  2. Despliega las bebidas calientes de la parte delantera.
  3. En la página siguiente, modifique la plantilla Pod.
  4. Actualice la imagen a: quay.io/citrix/hotdrinks-v2: Latest.
  5. Deje que se complete la actualización.
  6. Vuelva a acceder a la aplicación. La nueva página debería venir con una imagen actualizada después de lanzar la actualización.

image-cpx-deployment-12

Implementación de Prometheus

Se utilizan NetScaler Metrics Exporter, Prometheus y Grafana para detectar y recopilar automáticamente las métricas del CPX de ingreso.

Pasos para implementar Prometheus:

Cree los entornos para ejecutar CPX y las aplicaciones:

  1. Vaya a la ficha Entorno.
  2. Haga clic en Agregar entorno.
  3. Cree los entornos para ejecutar Exporter, Prometheus y Grafana.
    • Crea el entorno: monitorización.

Cargue el archivo .yaml con Nirmata:

  1. Vaya a la ficha Catálogo.
  2. Haga clic en Agregar aplicación.
  3. Haga clic en Agregar para agregar las aplicaciones.
    • Agregar aplicación: monitoring (monitoring.yaml).

Ejecutando la aplicación Prometheus:

  1. Vaya a la ficha Entorno y seleccione el entorno correcto: Supervisión.
  2. Haga clic en Ejecutar aplicación con el nombre monitoring.
  3. Esto despliega los pods Exporter, Prometheus y Grafana, y comienza a recopilar métricas.
  4. Ahora Prometheus y Grafana deben exponerse a través del VPX.

Comandos en el VPX para exponer a Prometheus y Grafana:

Cree un csvserver:

add cs vserver frontent_grafana HTTP <CS_VSERVER_IP> 80 -cltTimeout 180
<!--NeedCopy-->

Exponga Prometheus:

add serviceGroup prometheus HTTP
add lb vserver prometheus HTTP 0.0.0.0 0
add cs action prometheus -targetLBVserver prometheus
add cs policy prometheus -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.prometheus.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action prometheus
bind lb vserver prometheus prometheus
bind cs vserver frontent_grafana -policyName prometheus -priority 20
bind serviceGroup prometheus <PROMETHEUS_POD_IP> 9090
<!--NeedCopy-->

Nota:

Obtenga la IP del pod prometheus-k8s-0 mediante “kubectl get pods -n monitoring -o wide”

Exponga Grafana:

add serviceGroup grafana HTTP
add lb vserver grafana HTTP 0.0.0.0 0
add cs action grafana -targetLBVserver grafana
add cs policy grafana -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.grafana.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action grafana
bind lb vserver grafana grafana
bind cs vserver frontent_grafana -policyName grafana -priority 10
bind serviceGroup grafana <GRAFANA_POD_IP>  3000
<!--NeedCopy-->

Nota:

Obtenga la IP del pod grafana-xxxx-xxx utilizando kubectl get pods -n monitoring -o wide

  • Ahora las páginas de Prometheus y Grafana han sido expuestas para acceder a través del servidor virtual CS de VPX.

  • Para acceder a Prometheus y Grafana, se deben adjuntar los siguientes valores al archivo de hosts (del equipo desde el que se accede a las páginas):

     <CS_VSERVER_IP>       www.grafana.com
     <CS_VSERVER_IP>       www.prometheus.com
    
  • Una vez hecho esto, acceda a Prometheus visitando www.prometheus.com. Acceda a Grafana visitando www.grafana.com.

Visualice las métricas:

  • Para asegurarse de que Prometheus ha detectado Exporter, visite www.prometheus.com/targets. Debe contener una lista de todos los exportadores que supervisan los dispositivos CPX y VPX. Asegúrese de que todos los exportadores estén en estado UP. Consulte el siguiente ejemplo:

image-cpx-deployment-13

  • Ahora puede usar Grafana para trazar los valores que se recopilan. Para hacerlo:

    1. Vaya a www.grafana.com. Asegúrese de que se haya agregado una entrada adecuada en el archivo host.
    2. Inicie sesión con el nombre de usuario admin y password adminpredeterminados.
    3. Después de iniciar sesión, haga clic en Agregar origen de datos en el panel de inicio.
    4. Seleccione la opción Prometheus.
    5. Proporcione o cambie los siguientes detalles:
      • Nombre: prometheus (todo en minúsculas).
      • URL:http://prometheus:9090.
      • Deje las entradas restantes con valores predeterminados.
    6. Haga clic en Guardar y probar. Espere unos segundos hasta que aparezca el mensaje El origen de datos funciona en la parte inferior de la pantalla.
    7. Importe una plantilla de Grafana prediseñada haciendo clic en el icono + del panel de la izquierda. Elige Importar.
    8. Haga clic en el botón Cargar json y seleccione el archivo sample_grafana_dashboard.json (Dejar nombre, carpeta e identificador único sin cambios).
    9. Elija Prometheus en el menú desplegable Prometheus y haga clic en Importar.
    10. De este modo, se carga un panel similar al de la siguiente imagen:

      image-cpx-deployment-14

Pruebas de licencia y rendimiento

Ejecución de CPX para el rendimiento y las licencias.

La cantidad de núcleos CPX y los detalles del servidor de licencias se indican en las siguientes variables de entorno.

Variable de entorno para seleccionar el número de núcleos

  • nombre: “CPX_CORES”
  • valor: “3”

Variable de entorno para seleccionar el servidor de licencias

  • nombre: “LS_IP”
  • valor: “X.X.X.X”

    Anotaciones de Diamanti: diamanti.com/endpoint0: '{"network":"lab-network","perfTier":"high"}

    Señale para corregir el servidor de licencias estableciendo la dirección IP correcta arriba.

    1. Agregue las variables de entorno mencionadas anteriormente, así como anotaciones específicas de Diamanti en el cpx-perf.yaml archivo.
    2. Vaya a la ficha Entorno y cree el cpx-perf entorno.

    Cargue la aplicación YAML con Nirmata.

    1. Vaya a la ficha Catálogo.
    2. Haga clic en Agregar aplicación.
    3. Haga clic en Agregar para agregar una aplicación: cpx-perf.yaml. Nombre de la aplicación: cpx-perf.

    Ejecución de CPX:

    1. Vaya a la ficha Entorno y seleccione elcpx-perf entorno.
    2. En el entorno cpx-perf, ejecute la aplicación cpx-svcacct.
    3. En el entorno cpx-perf, ejecute la aplicación cpx-perf.
    4. Después de ejecutar la aplicación, vaya a la aplicación cpx-perf.
    5. En la ficha Implementaciones > StatefulSets & DaemonSets, haga clic en la implementación cpx-ingress-perf. En la página siguiente, modifique la plantilla de pod. Introduzca CPX en la cuenta de servicio.
    6. Valide que la licencia funcione y que la retirada de la licencia se esté realizando en Citrix ADM.
      • Para realizar la validación en el CPX, lleve a cabo los siguientes pasos:
        • kubectl consigue vainas -n cpx
        • kubectl exec -n cpx bash
        • cli_script.sh ‘sh servidor de licencias “
        • cli_script.sh ‘capacidad de sh’
      • Ver un resultado similar:
      root@cpx-ingress-colddrinks-66f4d75f76-kzf8w:/# cli_script.sh 'sh licenseserver'
      exec: sh licenseserver
      1)  ServerName:  10.217.212.228Port:  27000            Status:  1              Grace:  0               Gptimeleft:  0
      Done
      root@cpx-ingress-colddrinks-66f4d75f76-kzf8w:/# cli_script.sh 'sh capacity'
      exec: sh capacity
          Actualbandwidth:  10000 VcpuCount:  3           Edition:  Platinum      Unit:  Mbps             Maxbandwidth:  10000    Minbandwidth:  20       Instancecount:  0
      Done
      <!--NeedCopy-->
      
      • Para realizar la validación en ADM, vaya al servidor de licencias y vaya a Redes > Licencias > Licencias de CPU virtual.
      • Aquí debería ver el CPX con licencia junto con el recuento de núcleos.

      image-cpx-deployment-15

Tabla de anotaciones

Anotación Valor posible Descripción Predeterminado (si lo hay)
kubernetes.io/ingress.class nombre de clase de entrada Es una forma de asociar un recurso de ingreso en particular con un controlador de ingreso. Por ejemplo, kubernetes.io/ingress.class:"Citrix" Configura todos los ingresos
ingress.citrix.com/secure_backend Con el formato .json, enumere los servicios para un backend seguro Utilice True si quiere que Citrix ADC conecte su aplicación con la conexión HTTPS segura. Utilice False si quiere que Citrix ADC conecte su aplicación con una conexión HTTP no segura. Por ejemplo, ingress.citrix.com/secure_backend: {‘app1’:"True", ‘app2’:"False", ‘app3’:"True"} “Falso”
ingress.citrix.com/lbvserver En formato JSON, configuración para lbvserver Proporciona capacidad de anotación inteligente. Con esto, un usuario avanzado (que tenga conocimiento de las opciones de NetScaler LB Vserver y Service group) puede aplicarlos directamente. Los valores deben estar en formato JSON. Para cada aplicación de back-end de la entrada, proporciona un par de valores clave. El nombre de la clave debe coincidir con el nombre de CLI correspondiente. Por ejemplo, ingress.citrix.com/lbvserver: '{"app-1":{"lbmethod":"ROUNDROBIN"}}' Valores predeterminados