Concepts avancés

Citrix ADC CPX dans Kubernetes avec modèle de conception validé Diamanti et Nirmata

Caractéristiques et fonctions à tester

Cas d’essai : CPX en tant que contrôleur d’entrée et dispositif pour North-South et Hairpin East-West :

Configuration pour tous les cas de test à l’exception de VPX en tant que North-South :

  • Deux CPX dans un cluster (CPX-1, CPX-2)
  • ADM en tant que serveur de licences
  • Conteneur exportateur Prometheus dans un cluster
  • Serveur Prometheus et Grafana (soit en tant que pods dans Kubernetes ou externes au serveur Kubernetes)
  • Plusieurs applications frontales
  • Plusieurs applications principales

I. VPX en tant que North-South

  1. VPX sur une plate-forme frontale SDX Diamanti

    • Tester le déchargement SSL et re-chiffrer avec l’insertion de X-Forward pour chaque connexion SSL
    • Insertion de X-Forward sur les sessions SSL

II. CPX comme dispositif North-South

  1. CPX-1. Configurez l’entrée HTTPS avec la prise en charge de deux ou trois applications HTTPS avec une classe d’entrée spécifiée :

    • Démontrer la création de plusieurs stratégies de commutation de contenu : une par application frontale.
    • Démontrer plusieurs certificats génériques par CPX : un certificat générique par application.
    • Démontrer le déchargement CPX et le recryptage du trafic vers les applications frontales.
    • Démontrer un algorithme d’équilibrage de charge différent.
    • Démontrer la persistance d’une capsule.
  2. CPX-1. Configurer l’entrée TCP séparée avec la classe d’entrée spécifiée :

    • Insérez l’application TCP comme MongoDB.
    • Afficher la création VIP TCP.
    • Afficher le trafic client TCP qui touche le conteneur MongoDB.
    • Afficher la vérification de l’état de l’application TCP par défaut.
  3. CPX-1. Configurer l’entrée TCP-SSL séparée avec la classe d’entrée spécifiée :

    • Démontrer le déchargement SSL et le rechiffrement pour TCP-SSL VIP.
    • Répéter le cas 2.
  4. CPX par application. Utilisation d’une classe d’entrée séparée :

    • Répétez les cas de test 1 à 3 en utilisant CPX-2 prenant en charge une seule application.
  5. CPX par équipe. Utilisation de la classe d’entrée :

    • Attribuez différentes classes d’entrée pour 2 équipes.
    • Démontrer le cas de test 1 comme preuve que CPX peut configurer des règles d’entrée pour des équipes individuelles.
  6. Mise à l’échelle automatique des modules Front End :

    • Augmentez le trafic vers les modules Front End et assurez-vous que les modules s’adaptent automatiquement.
    • Afficher que CPX-1 ajoute de nouveaux modules au groupe de services.
    • Démontrer pour VIP d’entrée HTTPS.
  7. Prise en charge de 4 à 7 vCPU :

    • Configurez CPX-1 avec 4 ou 7 vCPU.
    • Afficher le test de performance de HTTPS TPS, BW cryptée tout au long.

III. CPX comme dispositif Hairpin East-West

  1. CPX-1. Créer une entrée HTTPS pour le trafic North-South comme décrit dans la section I.1 :

    • Exposer l’application dorsale à l’application frontale.
    • Afficher le trafic entre les deux applications.
    • Exposer l’application principale à une autre application principale.
    • Afficher le trafic entre les applications.
  2. CPX-1. Suivez les instructions de l’étape 1. Affichez également le chiffrement de bout en bout :

    • Application principale vers application principale cryptée avec CPX-1 effectuant le déchargement et le rechiffrement.
  3. Modules principaux Autoscale :

    • Démonstration CPX-1 en ajoutant des modules principaux Autoscale au groupe de services.

IV. Intégration CPX avec Prometheus et Grafana

  1. Insérer le conteneur Prometheus dans le cluster Kubernetes :

    • Configurez le conteneur avec des compteurs recommandés pour l’exportation pour chaque application.
    • Démontrer l’envoi de données de compteur au serveur Prometheus par conteneur exportateur.
    • Afficher le tableau de bord Grafana illustrant les données du serveur Prometheus provenant de CPX.
    • L’objectif est de montrer que les développeurs peuvent utiliser des outils natifs dans le cloud qui sont couramment utilisés pour DevOps.
  2. Démontrer l’intégration déploiement continu Kubernetes :

    • Insérer une nouvelle version de l’application dans Nirmata.
    • Afficher Kubernetes déployant une nouvelle version de l’application dans le cluster.
    • Démontrez que CPX répond aux commandes déployées de Kubernetes afin de prendre 100 % du trafic de l’ancienne version de l’application vers la nouvelle version de l’application.

Solution Citrix pour le déploiement Citrix ADC CPX

  1. Protocoles personnalisés : Par défaut, CITRIX INGRESS CONTROLLER automatise la configuration avec les protocoles par défaut (HTTP/SSL). CITRIX INGRESS CONTROLLER prend en charge la configuration de protocoles personnalisés (TCP/SSL -TCP/UDP) en utilisant des annotations.

    Annotations :

    ingress.citrix.com/insecure-service-type: "tcp" [Annotation au protocole LB de sélection]

    ingress.citrix.com/insecure-port: "53" [Annotation pour prendre en charge le port personnalisé]

  2. Réglage fin des paramètres CS/LB/ServiceGroup : Par défaut, CITRIX INGRESS CONTROLLER configure ADC avec les paramètres par défaut. Les paramètres peuvent être affiner à l’aide des annotations NetScaler ADC entity-parameter (lb/servicegroup).

    Annotations :

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

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

    API NITRO

  3. Chiffrement SSL par application : CITRIX INGRESS CONTROLLER peut activer sélectivement le chiffrement SSL pour les applications à l’aide d’annotations intelligentes.

    Annotations :

    ingress.citrix.com/secure_backend: '{"web-backend": "True"} [Annotation pour activer sélectivement le chiffrement par application]

  4. Default cert for ingress : CITRIX INGRESS CONTROLLER peut prendre le certificat par défaut comme argument. Si la définition d’entrée n’a pas le secret, alors le certificat par défaut est pris. Le secret doit être créé une fois dans l’espace de noms, puis toutes les entrées qui se trouvent dans l’espace de noms peuvent l’utiliser.

  5. Citrix multiple ingress class support : Par défaut, CITRIX INGRESS CONTROLLER écoute tous les objets d’entrée dans le cluster k8s. Nous pouvons contrôler la configuration de l’ADC (Tier-1 MPX/VPX & Tier-2 CPX) à l’aide d’annotations de classe d’entrée. Cela permet à chaque équipe de gérer indépendamment les configurations de leur ADC. La classe Ingress peut aider à déployer des solutions pour configurer l’ADC pour un espace de noms particulier ainsi qu’un groupe d’espaces de noms. Le support est plus générique que celui fourni par d’autres fournisseurs.

    Annotations :

    kubernetes.io/ingress.class: "citrix" [Notifier CITRIX INGRESS CONTROLLER de configurer uniquement l’entrée appartenant à une classe particulière]

  6. Visibilité : la solution k8s Citrix est intégrée à des outils de visibilité cncf tels que Prometheous/Grafana pour la collecte de métriques afin de mieux prendre en charge le débogage et l’analyse. Citrix prometheus exportateur peut rendre les mesures disponibles à Prometheus pour une visibilité avec Grafana comme graphiques de séries chronologiques.

Pour plus d’informations sur l’utilisation de l’architecture des microservices, consultez le fichier Lisezmoi.md sur GitHub. Vous trouverez les fichiers .yaml dans le dossier Config .

Scénario POC

Trois équipes exécutent leurs applications sur le cluster kubernetes. La configuration de chaque équipe est gérée indépendamment sur différents CPX à l’aide de la classe d’infiltration citrix.

Les applications de chaque équipe sont exécutées dans des espaces de noms distincts (team-hotdrink, team-colddrink et team-redis) et tous les CPX s’exécutent dans l’espace de noms CPX.

team-hotdrink: SSL/HTTP Ingress, persistency, lbmethod, encryption/dycription per application, default-cert.

team-colddrink:Infiltration SSL-TCP

team-redis``:Infiltration TCP

Configuration du POC

image-cpx-deployment-01

Flux d’application

Cas d’utilisation HTTP/SSL/SSL -TCP :

image-cpx-deployment-02

Cas d’utilisation TCP :

image-cpx-deployment-03

Obtention des images docker

Les commandes YAML fournies sont en train de récupérer les images à partir du dépôt quay.

Les images peuvent également être extraites et stockées dans le dépôt local. Vous pouvez les utiliser en modifiant le paramètre Image dans YAML.


Application étape par étape et déploiement CPX à l’aide de Nirmata

  1. Téléchargez les rôles de cluster et les rolebindings de cluster dans YAML et appliquez-les dans le cluster à l’aide de Nirmata (rbac.yaml).

    1. Accédez à l’onglet Clusters .
    2. Sélectionnez le cluster.
    3. Dans les paramètres, appliquez YAML à partir de l’option Appliquer YAML .
  2. Créez l’environnement pour exécuter CPX et les applications.

    1. Accédez à l’onglet Environnement.
    2. Cliquez sur l’onglet Ajouter un environnement .
      • Sélectionnez le cluster et créez un environnement dans l’espace de noms partagé.

      image-cpx-deployment-04

    3. Créez les environnements suivants pour exécuter Prometheus, CPX et des applications pour différentes équipes.
      • Créer un environnement : cpx
      • Créer un environnement : team-hotdrink
      • Créer un environnement : team-colddrink
      • Créer un environnement : team-redis
  3. Téléchargez l’application .yaml en utilisant Nirmata.

    1. Accédez à l’onglet Catalogue.
    2. Cliquez sur Ajouter une application.
    3. Cliquez sur Ajouter pour ajouter les applications.

      Ajouter une application : team-hotdrink (team_hotdrink.yaml). Nom de l’application : team-hotdrink.

      Ajouter une application : team-colddrink (team_coldrink.yaml). Nom de l’application : team-colddrink.

      Ajouter une application : team-redis (team_redis.yaml). Nom de l’application : team-redis.

      Ajouter une application : cpx-svcacct (cpx_svcacct.yaml). Nom de l’application : cpx-svcacct.

      Remarque :

      CPX avec CITRIX INGRESS CONTROLLER intégré nécessite un compte de service dans l’espace de noms où il est exécuté. Pour la version actuelle dans Nirmata, créez cecicpx_svcacct.yaml en utilisant l’environnement cpx.

      Ajouter l’application : cpx (cpx_wo_sa.yaml). Nom de l’application : cpx.

  4. Exécutez le CPX en utilisant Nirmata.

    1. Accédez à l’onglet Environnement et sélectionnez l’environnement approprié.
    2. Cliquez sur Exécuter l’application pour exécuter l’application.
    3. Dans l’environnement cpx, exécutez l’application cpx-svcacct. Sélectionnez cpx-svcacct avec le nom d’exécution cpx-svcacct dans l’application de catalogue .
    4. Dans l’environnement cpx, exécutez l’application cpx. Sélectionnez cpx dans l’ application de catalogue.

    image-cpx-deployment-05

    Remarque :

    Il y a quelques petites solutions de contournement nécessaires pour le déploiement CPX, car l’installation utilise une version antérieure de Nirmata.

    1. Lors de la création des déploiements CPX, ne définissez pas leserviceAccountName. LeserviceAccountName peut être ajouté plus tard. Pour contourner le problème, redéployez automatiquement les pods.
    2. Importez le secret TLS pour l’entrée directement dans l’environnement. Cela garantit que le champ de type est préservé.
    1. Après avoir exécuté l’application, accédez à l’application CPX .
    2. Sous l’onglet Déploiements > StatefulSets & Daemonsets , cliquez sur lecpx-ingress-colddrinks déploiement.
    3. Sur la page suivante, modifiez le modèle de pod. Saisissez CPX dans le compte de service.
    4. Retournez à l’application CPX .
    5. Répétez la même procédure pour lecpx-ingress-hotdrinks déploiementcpx-ingress-redis et.

    L’application du compte de service permet de redéployer les pods. Attendez que les pods arrivent et confirmez si le compte de service a été appliqué.

    La même chose peut être vérifiée à l’aide des commandes suivantes dans le cluster Diamanti.

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

    Remarque : Si le n’serviceAccount est pas appliqué, annulez les pods CPX. Le déploiement qui le recrée, vient avecserviceAccount.

    image-cpx-deployment-06

  5. Exécutez les applications à l’aide de Nirmata.

    application team-hotdrink :

    1. Accédez à l’onglet Environnement et sélectionnez l’environnement approprié : team-hotdrink.
    2. Dans l’environnement team-hotdrink, exécutez l’application team-hotddrink avec le nom d’exécution team-hotdrink. Sélectionnez team-hotdrink dans l’application de catalogue.
    3. Allez à l’application team-hotdrink. Dans le coin supérieur droit de l’écran, cliquez sur Paramètres et sélectionnez Importer dans l’application . Charger hotdrink-secret.yaml.

    image-cpx-deployment-07

    application team-colddrink :

    1. Accédez à l’onglet Environnement et sélectionnez l’environnement approprié : team-colddrink.
    2. Dans l’environnement team-colddrink, exécutez l’application team-coldddrink avec le nom d’exécution team-colddrink. Sélectionnez team-hotdrink dans l’application de catalogue.
    3. Allez à l’application team-colddrink. Dans le coin supérieur droit de l’écran, cliquez sur Paramètres et sélectionnez Importer dans l’application . Charger colddrink-secret.yaml.

    application team-redis :

    1. Accédez à l’onglet Environnement et sélectionnez l’environnement approprié : team-redis.
    2. Dans l’environnement team-colddrink, exécutez une application avec le nom d’exécution team-redis. Sélectionnez team-redis dans l’application de catalogue.
      • Dans l’environnement team-redis, exécutez une application avec le nom d’exécution team-redis.

Commandes sur VPX pour exposer le CPX de niveau 2

Le VPX de niveau 1 devrait effectuer le chiffrement ssl et le décryptage et insérer l’en-tête X-forward lors de l’envoi au CPX de niveau 2. La configuration de niveau 1 doit être effectuée manuellement. L’en-tête X-Forward peut être inséré à l’aide de -cip ENABLED dans servicegroup. Ouvrez config.txt.

Créer un csverver :

Téléchargez lecertkey dans Citrix ADC :wild.com-key.pem, wild.com-cert.pem

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

Exposez www.hotdrinks.com, www.colddrinks.com, www.guestbook.com sur Tier-1 VPX :

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-->

Mettez à jour l’adresse IP vers les adresses IP du pod CPX pour servicegroup :

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

  • Pour accéder à www.hotdrinks.com, www.colddrinks.com, www.guestbook.com, le fichier hosts (de la machine à partir de laquelle les pages sont accessibles) doit être ajouté avec les valeurs suivantes :

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

    Après cela, vous pouvez accéder aux applications en visitant : www.hotdrinks.com, www.colddrinks.com, www.guestbook.com

Validation de la configuration CPX de niveau 2

Pour valider la configuration CPX, accédez à l’environnement CPX. Sélectionnez l’application CPX en cours d’exécution.

Sélectionnez lecpx-ingress-hotdrinks déploiement, puis cliquez sur lecpx-ingress-hotdrinks-xxxx-xxxx module.

Sur la page suivante, allez dans le conteneur en cours d’exécution et lancez le terminal pour cpx-ingress-hotdrinks en tapant la commande « bash ».

image-cpx-deployment-09

image-cpx-deployment-10

Lorsque le terminal est connecté, validez la configuration à l’aide de la commande NetScaler standard via cli_script.sh.

  • cli_script.sh “sh cs vs”
  • cli_script.sh “sh lb vs”
  • cli_script.sh “sh servicegroup”

La validation peut être effectuée pour d’autres déploiements CPX pourteam-colddrink etteam-mongodb de la même manière.

Effectuer une mise à l’échelle haut/descendante

Pour effectuer une mise à l’échelle haut/descendante :

  1. Allez dans l’environnement team-hotdrink. Sélectionnez l’application team-hotdrink en cours d’exécution.
  2. Cliquez sur le déploiement frontend-hotdrinks.
  3. Sur la page suivante, cliquez sur Mise à jour des réplicas. Augmentez-le à 10.

Reportez-vous à : Validation de la configuration CPX de niveau 2 pour vérifier la configuration dans CPX (déploiement : cpx-ingress-hotdrinks).

  1. Accédez à l’environnement CPX. Sélectionnez une application CPX en cours d’exécution.
  2. Cliquez sur le déploiement cpx-ingress-hotdrinks.
  3. Cliquez sur lecpx-ingress-hotdrinks-xxxx-xxxx module.
  4. Sur la page suivante, allez dans le conteneur en cours d’exécution et lancez le terminal pour cpx-ingress-hotdrinks en tapant la commande « bash ».
  5. cli_script.sh "sh servicegroup < servicegroup name >".

image-cpx-deployment-11

Mise à jour continue

Pour effectuer une mise à jour continue :

  1. Allez dans l’environnement team-hotdrink. Sélectionnez l’application team-hotdrink en cours d’exécution.
  2. Déployer les boissons chaudes avant.
  3. Sur la page suivante, accédez au modèle Pod .
  4. Mettez à jour l’image pour : quay.io/citrix/hotdrinks -v2 : latest.
  5. Laissez la mise à jour se terminer.
  6. Accédez à nouveau à l’application. La nouvelle page devrait être accompagnée d’une image mise à jour après avoir effectué la mise à jour.

image-cpx-deployment-12

Déploiement de Prometheus

NetScaler Metrics Exporter, Prometheus et Grafana sont utilisés pour détecter et collecter automatiquement des mesures à partir du CPX d’entrée.

Étapes à suivre pour déployer Prometheus :

Créez les environnements pour exécuter CPX et les applications :

  1. Accédez à l’onglet Environnement.
  2. Cliquez sur Ajouter un environnement.
  3. Créez les environnements pour exécuter Exporter, Prometheus et Grafana.
    • Créer l’environnement : surveillance.

Téléchargez le fichier .yaml en utilisant Nirmata :

  1. Accédez à l’onglet Catalogue.
  2. Cliquez sur Ajouter une application.
  3. Cliquez sur Ajouter pour ajouter les applications.
    • Ajouter application : monitoring (monitoring.yaml).

Exécution de l’application Prometheus :

  1. Allez dans l’onglet Environnement et sélectionnez l’environnement approprié : surveillance .
  2. Cliquez sur Exécuter l’application à l’aide de la surveillance des noms.
  3. Cette opération déploie les pods Exportateur, Prométhée et Grafana et commence à collecter des mesures.
  4. Maintenant Prométhée et Grafana doivent être exposés à travers le VPX.

Commandes sur le VPX pour exposer Prometheus et Grafana :

Créer un serveur csvserver :

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

Exposer Prométhée :

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-->

Remarque :

Obtenez l’IP du pod prometheus-k8s-0 en utilisant « kubectl get pods -n monitoring -o wide »

Exposer 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-->

Remarque :

Obtenez l’adresse IP du pod grafana-xxxx-xxx en utilisant kubectl get pods -n monitoring -o wide

  • Maintenant, les pages Prometheus et Grafana ont été exposées pour accès via le serveur cs du VPX.

  • Pour accéder à Prometheus et Grafana, le fichier hosts (de la machine à partir de laquelle les pages sont accessibles) doit être ajouté avec les valeurs suivantes :

     <CS_VSERVER_IP>       www.grafana.com
     <CS_VSERVER_IP>       www.prometheus.com
    
  • Lorsque cela est fait, accédez à Prometheus en visitant www.prometheus.com. Accédez à Grafana en visitant www.grafana.com.

Visualisez les mesures :

  • Pour vous assurer que Prometheus a détecté l’exportateur, visitez le site www.prometheus.com/targets. Il devrait contenir une liste de tous les exportateurs qui surveillent les périphériques CPX et VPX. Assurez-vous que tous les exportateurs sont dans l’état UP . Exemple :

image-cpx-deployment-13

  • Vous pouvez maintenant utiliser Grafana pour tracer les valeurs qui sont collectées. Pour ce faire :

    1. Rendez-vous sur www.grafana.com. Assurez-vous qu’une entrée appropriée est ajoutée dans le fichier hôte.
    2. Connectez-vous en utilisant le nom d’utilisateur admin et mot de passe admin par défaut.
    3. Une fois connecté, cliquez sur Ajouter une source de données dans le tableau de bord d’accueil.
    4. Sélectionnez l’option Prometheus .
    5. Fournisseur/modifiez les détails suivants :
      • Nom : prometheus (minuscules).
      • URL : http://prometheus:9090.
      • Laissez les entrées restantes avec les valeurs par défaut.
    6. Cliquez sur Enregistrer et tester. Attendez quelques secondes jusqu’à ce que le message de la source de données fonctionne apparaît en bas de l’écran.
    7. Importez un modèle Grafana préconçu en cliquant sur l’icône + sur le panneau de gauche. Choisissez Importer.
    8. Cliquez sur le bouton Télécharger json et sélectionnez le fichier sample_grafana_dashboard.json (Laisser le nom , le dossier et l’ identificateur unique inchangés).
    9. Choisissez Prometheus dans le menu déroulant Prometheus, puis cliquez sur Importer .
    10. Ceci télécharge un tableau de bord similaire à l’image suivante :

      image-cpx-deployment-14

Licences et tests de performance

Exécution de CPX pour perf et licence.

Le nombre de cœurs CPX et les détails du serveur de licences sont donnés dans les variables d’environnement suivantes.

Variable d’environnement pour sélectionner le nombre de cœurs

  • nom : “CPX_CORES”
  • valeur : “3”

Variable d’environnement pour sélectionner le serveur de licences

  • nom : “LS_IP”
  • valeur : “X.X.X.X”

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

    Pointez pour corriger le serveur de licences en définissant l’adresse IP correcte ci-dessus.

    1. Ajoutez les variables d’environnement mentionnées ci-dessus ainsi que les annotations spécifiques Diamanti dans le fichier cpx-perf.yaml.
    2. Accédez à l’onglet Environnement et créez l’environnement cpx-perf.

    Téléchargez l’application YAML en utilisant Nirmata.

    1. Accédez à l’onglet Catalogue.
    2. Cliquez sur Ajouter une application.
    3. Cliquez sur Ajouter pour ajouter une application : cpx-perf.yaml. Nom de l’application : cpx-perf.

    Exécution de CPX :

    1. Accédez à l’onglet Environnement et sélectionnez l’environnement cpx-perf.
    2. Dans l’environnement cpx-perf, exécutez l’application cpx-svcacct.
    3. Dans l’environnement cpx-perf, exécutez l’application cpx-perf.
    4. Après avoir exécuté l’application, accédez à l’application cpx-perf.
    5. Sous Déploiements > onglet StatefulSets & DaemonSets , cliquez sur lecpx-ingress-perf déploiement. Sur la page suivante, modifiez le modèle de pod. Saisissez CPX dans le compte de service.
    6. Valider que la licence fonctionne et que la récupération de licence a lieu dans Citrix ADM.
      • Pour valider sur le CPX, effectuez les opérations suivantes :
        • kubectl get pods -n cpx
        • kubectl exec -it -n cpx bash
        • cli_script.sh ‘sh licenseserver’
        • cli_script.sh ‘sh capacity’
      • Afficher une sortie similaire :
      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-->
      
      • Pour valider sur l’ADM, accédez au serveur de licences et accédez à Réseaux > Licences > Licences CPU virtuelles.
      • Ici, vous devriez voir le CPX sous licence avec le nombre de cœurs.

      image-cpx-deployment-15

Tableau des annotations

Annotation Valeur possible Description Par défaut (le cas échéant)
kubernetes.io/ingress.class nom de classe d’entrée C’est un moyen d’associer une ressource d’entrée particulière à un contrôleur d’entrée. Par exemple, kubernetes.io/ingress.class:"Citrix" Configure toutes les entrées
ingress.citrix.com/secure_backend À l’aide du format .json, lister les services pour le backend sécurisé Utilisez True, si vous souhaitez que Citrix ADC connecte votre application à la connexion HTTPS sécurisée. Utilisez Falsesi vous souhaitez que Citrix ADC connecte votre application avec une connexion HTTP non sécurisée. Par exemple, ingress.citrix.com/secure_backend: {‘app1’:"True", ‘app2’:"False", ‘app3’:"True"} « Faux »
ingress.citrix.com/lbvserver Dans le formulaire JSON, les paramètres pour lbvserver Il fournit une fonctionnalité d’annotation intelligente. Grâce à cela, un utilisateur avancé (qui connaît les options de serveur NetScaler LB et de groupe de services) peut les appliquer directement. Les valeurs doivent être au format .json. Pour chaque application principale dans l’entrée, fournissez une paire de valeurs clés. Le nom de la clé doit correspondre au nom de l’interface de ligne de commande correspondante. Par exemple, ingress.citrix.com/lbvserver: '{"app-1":{"lbmethod":"ROUNDROBIN"}}' Valeurs par défaut
Citrix ADC CPX dans Kubernetes avec modèle de conception validé Diamanti et Nirmata