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

Caractéristiques et fonctions à tester

Cas de test : CPX en tant que contrôleur d’entrée et dispositif pour le Nord-Sud et Hairpin East-West :

Configuration pour tous les cas de test sauf pour VPX en mode Nord-Sud :

  • Deux CPX dans un cluster (CPX-1, CPX-2)
  • ADM en tant que serveur de licences
  • Conteneur d’exportation Prometheus dans un cluster
  • Serveur Prometheus et Grafana (soit en tant que pods dans Kubernetes, soit en externe au serveur Kubernetes)
  • Plusieurs applications frontales
  • Plusieurs applications dorsales

I. VPX en tant que Nord-Sud

  1. VPX sur une plateforme frontale SDX Diamanti

    • Testez le déchargement et le chiffrement du protocole SSL en insérant X-Forward pour chaque connexion SSL
    • Insertion de X-Forward sur les sessions SSL

II. Le CPX comme dispositif Nord-Sud

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

    • Démontrez la création de plusieurs politiques de changement de contenu : une par application frontale.
    • Démontrez plusieurs certificats génériques par CPX : un certificat joker par application.
    • Démontrez que CPX décharge et recrypte le trafic vers les applications frontales.
    • Démontrez différents algorithmes d’équilibrage de charge.
    • Démontrez la persistance d’un module.
  2. CPX-1. Configurez une entrée TCP séparée avec la classe d’entrée spécifiée :

    • Insérez une application TCP comme MongoDB.
    • Afficher la création TCP VIP.
    • Afficher le trafic client TCP atteignant le pod MongoDB.
    • Afficher le contrôle de santé de l’application TCP par défaut.
  3. CPX-1. Configurez une entrée TCP-SSL séparée avec la classe d’entrée spécifiée :

    • Démontrez le déchargement et le rechiffrement SSL pour TCP-SSL VIP.
    • Répétez le cas de test 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 le 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 à 2 équipes.
    • Démontrez le scénario de test 1 pour prouver que CPX peut configurer des règles d’entrée pour des équipes individuelles.
  6. Autoscale des modules frontaux :

    • Augmentez le trafic vers les pods frontaux et assurez-vous que les pods sont automatiquement redimensionnés.
    • Montrez que le CPX-1 ajoute de nouveaux modules au groupe de services.
    • Démonstration pour HTTPS ingress VIP.
  7. Prise en charge de 4 à 7 vCPU :

    • Configurez le CPX-1 avec 4 ou 7 processeurs virtuels.
    • Afficher le test de performance du HTTPS TPS et du BW crypté dans l’ensemble.

III. CPX en tant qu’appareil Hairpin East-West

  1. CPX-1. Créez une entrée HTTPS pour le trafic Nord-Sud comme décrit dans la section I.1 :

    • Exposez l’application principale à l’application frontale.
    • Afficher le trafic entre les deux applications.
    • Exposez 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 dorsale à application principale cryptée avec CPX-1 pour le déchargement et le rechiffrement.
  3. Modules dorsaux Autoscale :

    • Démontrez que CPX-1 ajoute des modules de backend à mise à l’échelle automatique au groupe de services.

IV. Intégration CPX avec Prometheus et Grafana

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

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

    • Insérez 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 de déploiement continu de Kubernetes pour transférer 100 % du trafic de l’ancienne version de l’application vers la nouvelle version de l’application.

Solution Citrix pour le déploiement de 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 permet de configurer des protocoles personnalisés (TCP/SSL-TCP/UDP) à l’aide d’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 affinés à l’aide des annotations des paramètres d’entité (lb/servicegroup) de NetScaler ADC.

    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 de manière sélective le cryptage 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 ne contient pas le secret, le certificat par défaut est utilisé. Le secret doit être créé une seule fois dans l’espace de noms, puis toutes les entrées présentes dans l’espace de noms peuvent l’utiliser.

  5. Prise en charge de plusieurs classes d’entrée Citrix : par défaut, CITRIX INGRESS CONTROLLER écoute tous les objets d’entrée du cluster k8s. Nous pouvons contrôler la configuration de l’ADC (MPX/VPX de niveau 1 et CPX de niveau 2) à l’aide d’annotations de classe d’entrée. Cela permet à chaque équipe de gérer les configurations de son ADC de manière indépendante. La classe Ingress peut aider à déployer des solutions pour configurer l’ADC pour un espace de noms particulier ainsi que pour 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’entrée Citrix.

Les applications de chaque équipe s’exécutent 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: Entrée SSL/HTTP, persistance, méthode de travail, cryptage/scription par application, certificat par défaut.

team-colddrink: Entrée SSL-TCP

team-redis: Entrée TCP

Configuration du POC

image-cpx-deployment-01

Flux d’applications

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

image-cpx-deployment-02

Cas d’utilisation du protocole TCP :

image-cpx-deployment-03

Obtenir les images Docker

Les commandes YAML fournies récupèrent les images depuis le référentiel Quay.

Les images peuvent également être extraites et stockées dans le référentiel local. Vous pouvez les utiliser en modifiant le paramètre Image dans YAML.


Déploiement d’applications et de CPX étape par étape à l’aide

  1. Téléchargez les rôles de cluster et les liaisons de rôles 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 les fichiers 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éez un environnement : teamhotdrink
      • Créez 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.

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

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

      Ajoutez l’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 s’exécute. Pour la version actuelle de Nirmata, créez-la cpx_svcacct.yaml en utilisant l’environnement cpx.

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

  4. Exécutez le CPX à l’aide de 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 Catalog.

    image-cpx-deployment-05

    Remarque :

    Quelques petites solutions de contournement sont nécessaires pour le déploiement de CPX, car la configuration utilise une version antérieure de Nirmata.

    1. Lors de la création des déploiements CPX, ne définissez pas le serviceAccountName. Ils serviceAccountName peuvent être ajoutés ultérieurement. Pour contourner ce 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 type est préservé.
    1. Après avoir exécuté l’application, accédez à l’application CPX .
    2. Dans l’onglet Déploiements > StatefulSets & DaemonSets, cliquez sur le cpx-ingress-colddrinks déploiement.
    3. Sur la page suivante, modifiez le modèle Pod. Entrez CPX dans le compte de service.
    4. Revenez à l’application CPX .
    5. Répétez la même procédure pour le cpx-ingress-redis déploiement cpx-ingress-hotdrinks et.

    En appliquant le compte de service, les pods sont redéployés. Attendez que les modules apparaissent 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 modules CPX. Le déploiement qui le recrée arrive serviceAccount.

    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’ team-hotdrink environnement, exécutez l’ team-hotddrink application avec le nom d’ team-hotdrink exécution. Sélectionnez dans team-hotdrink l’ application de catalogue.
    3. Accédez à l’ team-hotdrink application. Dans le coin supérieur droit de l’écran, cliquez sur Paramètres et sélectionnez Importer dans l’application. Télé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’ team-colddrink environnement, exécutez l’ team-coldddrink application avec le nom d’ team-colddrink exécution. Sélectionnez dans team-hotdrink l’ application de catalogue.
    3. Accédez à l’ team-colddrink application. Dans le coin supérieur droit de l’écran, cliquez sur Paramètres et sélectionnez Importer dans l’application. Télécharger colddrink-secret.yaml.

    Application team-redis :

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

Commandes sur VPX pour exposer le CPX de niveau 2

Le VPX de niveau 1 doit effectuer un cryptage/décryptage SSL et insérer un en-tête X-forward lors de l’envoi vers un CPX de niveau 2. La configuration de niveau 1 doit être effectuée manuellement. L’en-tête X-Forward peut être inséré en utilisant -cip ENABLED dans servicegroup. Ouvrez config.txt.

Créez un caverver :

Téléchargez le certkey 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 un VPX de niveau 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-->

Mettez à jour l’adresse IP en utilisant les adresses IP du pod CPX pour le groupe de services :

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 doivent être consultées) 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
    

    Une fois cela fait, vous pouvez accéder aux applications en vous rendant sur : 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 le cpx-ingress-hotdrinks déploiement, puis cliquez sur le cpx-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 « groupe de services sh »

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

Réaliser une mise à l’échelle ou une réduction

Pour effectuer une mise à l’échelle ou une réduction d’échelle :

  1. Allez dans l’ team-hotdrink environnement. Sélectionnez l’application team-hotdrink en cours d’exécution.
  2. Cliquez sur le frontend-hotdrinks déploiement.
  3. Sur la page suivante, cliquez sur Mettre à jour les répliques. 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 cpx-ingress-hotdrinks déploiement.
  3. Cliquez sur le cpx-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

Effectuer une mise à jour

Pour effectuer une mise à jour continue :

  1. Allez dans l’ team-hotdrink environnement. Sélectionnez l’application team-hotdrink en cours d’exécution.
  2. Déployez les boissons chaudes à l’avant.
  3. Sur la page suivante, accédez au modèle Pod .
  4. Mettez à jour l’image vers : 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 l’exécution de la mise à jour.

image-cpx-deployment-12

Déployer Prometheus

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

Étapes pour déployer Prometheus :

Créez les environnements nécessaires à l’exécution de CPX et des applications :

  1. Accédez à l’onglet Environnement .
  2. Cliquez sur Ajouter un environnement.
  3. Créez les environnements nécessaires à l’exécution d’Exporter, de Prometheus et de Grafana.
    • Création de 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 une application : monitoring (monitoring.yaml).

Exécution de l’application Prometheus :

  1. Accédez à l’onglet Environnement et sélectionnez l’environnement approprié : surveillance.
  2. Cliquez sur Exécuter l’application en utilisant le nom monitoring.
  3. Cela déploie les modules Exporter, Prometheus et Grafana et commence à collecter des métriques.
  4. Prométhée et Grafana doivent maintenant être exposés via le VPX.

Commandes sur le VPX pour exposer Prometheus et Grafana :

Créez un serveur CSV :

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

Exposez 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’adresse IP du pod prometheus-k8s-0 en utilisant « kubectl get pods -n monitoring -o wide »

Exposez 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 peuvent être consultées 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 vous rendant sur www.prometheus.com. Accédez à Grafana en vous rendant sur www.grafana.com.

Visualisez les indicateurs :

  • Pour vous assurer que Prometheus a détecté l’exportateur, rendez-vous sur www.prometheus.com/targets. Il doit contenir une liste de tous les exportateurs qui surveillent les appareils 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 collectées. Pour cela :

    1. Accédez au site 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 et le mot de passeadminpar 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. Fournissez/modifiez les informations suivantes :
      • Nom : Prométhée (tout en minuscules).
      • URL : http://prometheus:9090.
      • Conservez les valeurs par défaut pour les entrées restantes.
    6. Cliquez sur Enregistrer et tester. Patientez quelques secondes jusqu’à ce que le message Source de données fonctionne s’ affiche 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 (ne modifiez pas le nom, le dossieret l’ identifiant unique).
    9. Choisissez Prometheus dans le menu déroulant Prometheus, puis cliquez sur Importer.
    10. Cela télécharge un tableau de bord similaire à l’image suivante :

      image-cpx-deployment-14

Tests de licence et de performance

Exécuter des CPX pour les performances et les licences.

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

Variable d’environnement permettant de 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 diamantées : diamanti.com/endpoint0: '{"network":"lab-network","perfTier":"high"}

    Pointez sur le bon 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’ cpx-perf environnement.

    Téléchargez l’application YAML à l’aide de 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’ cpx-perf environnement, exécutez l’ cpx-svcacct application.
    3. Dans l’ cpx-perf environnement, exécutez l’ cpx-perf application.
    4. Après avoir exécuté l’application, accédez à l’application cpx-perf.
    5. Sous l’onglet Déploiements > StatefulSets & DaemonSets, cliquez sur le cpx-ingress-perf déploiement. Sur la page suivante, modifiez le modèle de pod. Entrez CPX dans le compte de service.
    6. Vérifiez que la licence fonctionne et que la récupération de la licence est en cours dans Citrix ADM.
      • Pour valider sur le CPX, effectuez les étapes 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 de processeur virtuel.
      • Ici, vous devriez voir le CPX sous licence ainsi que 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, répertoriez les services pour secure-backend Utilisez Truesi vous souhaitez que Citrix ADC connecte votre application à l’aide de la connexion HTTPS sécurisée. Utilisez Falsesi vous souhaitez que Citrix ADC connecte votre application via 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 Au format JSON, paramètres pour lbvserver Il fournit une fonctionnalité d’annotation intelligente. Grâce à cela, un utilisateur avancé (qui connaît les options de NetScaler LB Vserver et de groupe de services) peut les appliquer directement. Les valeurs doivent être au format .json. Pour chaque application principale de l’entrée, fournissez une paire clé-valeur. Le nom de la clé doit correspondre au nom de la CLI correspondant. Par exemple, ingress.citrix.com/lbvserver: '{"app-1":{"lbmethod":"ROUNDROBIN"}}' Valeurs par défaut