Conceptos avanzados

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

Funciones y funciones por probar

Casos de prueba: CPX como Controller de entrada y dispositivo para Norte-Sur y Hairpin Este-Oeste:

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

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

I. VPX como Norte-Sur

  1. VPX en una plataforma SDX front-end Diamanti

    • Probar descarga SSL y volver 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 entrada especificada:

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

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

    • Demostrar descarga SSL y re-cifrado para TCP-SSL VIP.
    • Repetir caso de prueba 2.
  4. CPX por aplicación. Uso de clases de entrada separadas:

    • Repita los casos de prueba 1—3 mediante CPX-2 compatible con una sola aplicación.
  5. CPX por equipo. Uso de la clase de entrada:

    • Asigne diferentes clases de entrada para 2 equipos.
    • Demostrar el caso de prueba 1 como evidencia de que CPX puede configurar reglas de entrada 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 escalan automáticamente.
    • Mostrar que CPX-1 agrega nuevos pods al grupo de servicios.
    • Demostrar para HTTPS entrada VIP.
  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 de horquilla Este-Oeste

  1. CPX-1. Cree entradas 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 back-end a otra aplicación back-end.
    • 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. Módulos back-end de escala automática:

    • Demuestre CPX-1 al agregar pods back-end autoescalados al grupo de servicios.

IV. Integración de CPX con Prometheus y Grafana

  1. Inserte el contenedor Prometheus en el clúster Kubernetes:

    • Configure el contenedor con contadores recomendados para exportar para 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 mostrar que los desarrolladores pueden usar herramientas nativas de la nube que son de uso popular para DevOps.
  2. Demostrar la integración de Kubernetes implementación continuo:

    • Insertar nueva versión de la aplicación en Nirmata.
    • Mostrar Kubernetes implementando la nueva versión de la aplicación en el clúster.
    • Demostrar que CPX responde a los comandos de implementación sucesiva de Kubernetes para llevar el 100% del tráfico de la versión antigua 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 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 anotaciones de parámetro de entidad (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 selectivamente el cifrado por aplicación]

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

  5. Compatibilidad con clases de entrada múltiple de Citrix: De forma predeterminada, Citrix INGRESS CONTROLLER escucha todos los objetos de entrada en el clúster k8s. Podemos controlar la configuración de ADC (Tier-1 MPX/VPX & Tier-2 CPX) con la ayuda de anotaciones de clase de entrada. Esto ayuda a cada equipo a administrar las configuraciones de su ADC de forma independiente. La clase de entrada 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 que el proporcionado por otros proveedores.

    Anotaciones:

    kubernetes.io/ingress.class: "citrix" [Notificar a Citrix INGRESS CONTROLLER para que solo configure la entrada que pertenece a una clase determinada]

  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, consulte el archivo README.md en GitHub. Puede encontrar los archivos .yaml en la carpeta Config.

Línea de historia de POC

Hay tres equipos ejecutando sus aplicaciones en kubernetes cluster. La configuración de cada equipo se administra de forma independiente en diferentes CPX con la ayuda de la clase de entrada 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: Entrada SSL/HTTP, persistencia, lbmethod, cifrado/descifrado por aplicación, default-cert.

team-colddrink: Entrada SSL-TCP

team-redis: Entrada TCP

Configuración de POC

image-cpx-deployment-01

Flujo de aplicaciones

Caso de uso HTTP/SSL/SSL-TCP:

image-cpx-deployment-02

Caso de uso TCP:

image-cpx-deployment-03

Obtener las imágenes del acoplador

Los comandos YAML proporcionados están obteniendo las imágenes del repositorio de muelle.

Las imágenes también se pueden extraer y almacenar en el repositorio local. Puede usarlos al modificar el parámetro Image en YAML.


Implementación de aplicaciones y CPX paso a paso mediante 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 entorno en el espacio de nombres compartido.

      image-cpx-deployment-04

    3. Cree los siguientes entornos para ejecutar Prometheus, CPX y aplicaciones para diferentes equipos.
      • Crear entorno: Cpx
      • Crear entorno: Team-hotdrink
      • Crear entorno: Team-colddrink
      • Crear entorno: Team-redis
  3. Cargue la aplicación .yaml mediante 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 aplicación: Cpx.

  4. Ejecute el CPX mediante 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 provisionales para la implementación de CPX, porque la instalación está utilizando una versión anterior de Nirmata.

    1. Al crear las implementaciones CPX, no establezca el serviceAccountName. serviceAccountName se puede agregar más tarde. Como solución alternativa, vuelva a implementar automáticamente los pods.
    2. Importe el secreto TLS para la entrada directamente en el entorno. Esto garantiza que se conserve el campo de tipo.
    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, vuelve a implementar los pods. Espere a que se levanten los pods y confirme si se ha aplicado la cuenta de servicio.

    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 mediante 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/descifrado 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 mediante -cip ENABLED en servicegroup. Abran config.txt.

Cree 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 IPs del pod CPX para el grupo de servicio:

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 de hosts (de la máquina desde la que se va a acceder 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 CPX de nivel 2

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

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 conecta, 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 "sh servicegroup"

La validación se puede hacer para otra implementación de CPX para team-colddrink y team-mongodb de la misma manera.

Realizar escala/escala hacia arriba/abajo

Para realizar la ampliación o reducción de escala:

  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. Aumentarlo 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 actualización sucesiva

Para realizar la actualización sucesiva:

  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. Acceda de nuevo a la aplicación. La nueva página debe venir con una imagen actualizada después de rodar la actualización.

image-cpx-deployment-12

Implementación de Prometheus

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

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.
    • Crear el entorno: supervisión.

Cargue el archivo .yaml mediante 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).

Ejecución de la aplicación Prometheus:

  1. Vaya a la ficha Entorno y seleccione el entorno correcto: Supervisión.
  2. Haga clic en Ejecutar aplicación mediante la supervisión de nombres.
  3. Esto despliega los pods Exporter, Prometheus y Grafana, y comienza a recopilar métricas.
  4. Ahora Prometheus y Grafana necesitan ser expuestos a través de la VPX.

Comandos en la VPX para exponer Prometheus y Grafana:

Crear un servidor csvserver:

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

Exponga Prometeo:

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 mediante 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, el archivo de hosts (de la máquina desde la que se van a acceder a las páginas) debe agregarse con los siguientes valores:

    <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 están supervisando 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 están recopilando. Para hacer eso:

    1. Vaya a www.grafana.com. Asegúrese de que se agrega una entrada adecuada en el archivo host.
    2. Inicie sesión con el nombre de usuario predeterminado admin y contraseña admin.
    3. Después de iniciar sesión, haga clic en Agregar origen de datos en el panel principal.
    4. Seleccione la opción Prometheus.
    5. Proporcionar/cambiar los siguientes detalles:
      • Nombre: prometheus (todo en minúsculas).
      • URL: http://prometheus:9090.
      • Deje las entradas restantes con los valores predeterminados.
    6. Haga clic en Guardar y probar. Espere unos segundos hasta que aparezca el mensaje de origen de datos en la parte inferior de la pantalla.
    7. Importe una plantilla de Grafana prediseñada haciendo clic en el icono + del panel izquierdo. Seleccione 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. Esto carga un panel similar a la siguiente imagen:

      image-cpx-deployment-14

Licencias y pruebas de rendimiento

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

El número de núcleos CPX y detalles del servidor de licencias se indica 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 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 archivo cpx-perf.yaml.
    2. Vaya a la ficha Entorno y cree el entorno cpx-perf.

    Cargue la aplicación YAML mediante 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 el entorno cpx-perf.
    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. Validar que la licencia está funcionando y que la retirada de la licencia se está realizando en Citrix ADM.
      • Para validar en CPX, realice los siguientes pasos:
        • kubectl get pods -n cpx
        • kubectl exec -it <CPX_POD_NAME> -n cpx bash
        • cli_script.sh ‘servidor de licencias sh ‘
        • cli_script.sh ‘capacidad 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 validar en ADM, vaya al servidor de licencias y vaya a Redes > Licencias > Licencias > Licencias de CPU virtual.
      • Aquí debe 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 existe)
kubernetes.io/ingress.class nombre de clase de entrada Es una forma de asociar un recurso de entrada particular con un Controller de entrada. Por ejemplo: kubernetes.io/ingress.class:"Citrix" Configura todas las entradas
ingress.citrix.com/secure_backend Mediante el formato.json, enumere los servicios para secure-backend Utilice Truesi quiere que Citrix ADC conecte la aplicación con la conexión HTTPS segura. Utilice False, si quiere que Citrix ADC conecte la aplicación con una conexión HTTP insegura. Por ejemplo: ingress.citrix.com/secure_backend: {'app1':"True", 'app2':"False", 'app3':"True"} “Falso”
ingress.citrix.com/lbvserver En el formulario JSON, la configuración de lbvserver Proporciona capacidad de anotación inteligente. Con esto, un usuario avanzado (que tenga conocimiento de las opciones de NetScaler LB Vserver y grupo de servicio) puede aplicarlas directamente. Los valores deben estar en formato.json. Para cada aplicación back-end en la entrada, proporcione un par de valores clave. El nombre de la clave debe coincidir con el nombre de la CLI correspondiente. Por ejemplo: ingress.citrix.com/lbvserver: '{"app-1":{"lbmethod":"ROUNDROBIN"}}' Valores predeterminados
Diseño de referencia validado de Citrix ADC CPX en Kubernetes con Diamanti y Nirmata