Citrix ADC CPX, Citrix Ingress Controller et Application Delivery Management sur Google Cloud

Présentation des produits Citrix pour l’architecture et les composants de GCP K8

Les cinq principaux composants Citrix de GCP

  1. Citrix ADC VPX en tant qu’ADC de niveau 1 pour le trafic client Internet basé sur l’entrée.

    Une instance VPX dans GCP vous permet de tirer parti des capacités informatiques de GCP et d’utiliser les fonctionnalités d’équilibrage de charge et de gestion du trafic de Citrix pour les besoins de votre entreprise. Vous pouvez déployer VPX dans GCP en tant qu’instance autonome. Les configurations de cartes d’interface réseau (NIC) simples et multiples sont prises en charge.

  2. Le cluster Kubernetes utilise Google Kubernetes Engine (GKE) pour former la plateforme de conteneurs.

    Kubernetes Engine est un environnement géré et prêt à la production pour le déploiement d’applications conteneurisées. Il permet un déploiement et une gestion rapides de vos applications et services.

  3. Déployez un exemple d’application Web Citrix en utilisant la bibliothèque de fichiers YAML.

    Citrix a fourni un exemple d’application Web de microservices pour tester la topologie de l’application à deux niveaux sur GCP. Nous avons également inclus les éléments suivants dans les exemples de fichiers à titre de preuve de concept :

    • Exemple de service Web Hotdrink dans un fichier Kubernetes YAML
    • Exemple de service Web Colddrink dans un fichier Kubernetes YAML
    • Exemple de service Web Guestbook dans un fichier Kubernetes YAML
    • Exemple de service graphique Grafana dans un fichier Kubernetes YAML
    • Exemple de service de journalisation Prometheus dans un fichier Kubernetes YAML

    GCP

  4. Déployez le Citrix ingress controller pour l’automatisation Citrix ADC de niveau 1 dans le cluster GKE.

    Le Citrix ingress controller construit autour de Kubernetes configure automatiquement un ou plusieurs Citrix ADC en fonction de la configuration des ressources d’entrée. Un contrôleur d’entrée est un contrôleur qui surveille le serveur d’API Kubernetes pour détecter les mises à jour de la ressource d’entrée et reconfigure l’équilibreur de charge d’entrée en conséquence. Le Citrix ingress controller peut être déployé directement à l’aide de fichiers YAML ou par Helm Charts.

    GCP

    Citrix a fourni des exemples de fichiers YAML pour l’automatisation du Citrix ingress controller de l’instance VPX de niveau 1. Les fichiers automatisent plusieurs configurations sur le VPX de niveau 1, notamment :

    • Réécrire les politiques et les actions
    • Stratégies et actions des intervenants
    • Règles de changement d’URL du contenu
    • Ajouter/supprimer des services d’équilibrage de charge CPX

    Le fichier YAML du Citrix ingress controller pour GCP se trouve ici : https://github.com/citrix/example-cpx-vpx-for-kubernetes-2-tier-microservices/tree/master/gcp

Déploiement d’entrée à deux niveaux sur GCP

Dans un déploiement d’entrée à deux niveaux, déployez Citrix ADC VPX/MPX en dehors du cluster Kubernetes (niveau 1) et Citrix ADC CPX à l’intérieur du cluster Kubernetes (niveau 2).

Le VPX/MPX de niveau 1 équilibrerait la charge du CPX de niveau 2 au sein du cluster Kubernetes. Il s’agit d’un modèle de déploiement générique largement suivi quelle que soit la plateforme, qu’il s’agisse de Google Cloud, Amazon Web Services, Azure ou d’un déploiement sur site.

Automatisation du VPX/MPX de niveau 1

Le VPX/MPX de niveau 1 équilibre automatiquement la charge des CPX de niveau 2. Le Citrix ingress controller complète les configurations d’automatisation en s’exécutant en tant que pod au sein du cluster Kubernetes. Il configure une classe d’entrée distincte pour le VPX/MPX de niveau 1 afin que la configuration ne se chevauche pas avec d’autres ressources d’entrée.

GCP


Présentation du déploiement de Citrix

Installation et configuration du Citrix ADC de niveau 1 sur GCP

Vous pouvez déployer Citrix ADC à l’aide de l’une des options suivantes :

Maintenant, vous devez déployer Citrix VPX (niveau 1-adc) à l’aide du modèle GDM 3-NIC.

Prérequis (obligatoires) :

  1. Créer un compte GCP à l’aide de votre identifiant de messagerie Citrix uniquementhttp://console.cloud.google.com

  2. Créez cnn-selab-atl comme nom de projet sur la console GCP : GCP

  3. Installez l’utilitaire gcloud sur votre appareil. Suivez le lien pour trouver l’utilitaire : https://cloud.google.com/sdk/install.

  4. Authentifiez-vous sur votre compte Google à l’aide de l’API gcloud et de la connexion gcloud auth.

  5. Installez kubectl sur votre client : https://kubernetes.io/docs/tasks/tools/install-kubectl/

  6. Exécutez la commande suivante sur l’utilitaire gcloud pour créer une image.

    gcloud compute images create netscaler12-1 --source-uri=gs://tme-cpx-storage/NSVPX-GCP-12.1-50.28_nc.tar.gz --guest-os-features=MULTI_IP_SUBNET
    <!--NeedCopy-->
    

    La création de l’image peut prendre un moment. Une fois l’image créée, elle apparaît sous Compute > Compute Engine dans la console GCP.

Déployer un Citrix VPX (niveau 1) sur GCP

  1. Instances de VPC GCP : pour assurer la séparation des réseaux externes, internes et DMZ à des fins de sécurité. Nous devons créer trois cartes réseau, comme indiqué dans le tableau suivant :

    Réseau Commentaires
    192.168.10.0/24 Réseau de gestion (vpx-snet-mgmt)
    172.16.10.0/24 Réseau client (vpx-snet-vip)
    10.10.10.0/24 Réseau de serveurs (vpx-snet-Snip)

    Remarque :

    Créez les VPC réseau à trois bras avant de déployer des instances de machines virtuelles.

    Un VPC peut être créé par le SDK à l’aide des API gcloud ou via la console Google Cloud Platform

    VPC par API gcloud

    Création d’un VPC pour la gestion ou le trafic NSIP

     gcloud compute --project=cnn-selab-atl networks create vpx-snet-mgmt --subnet-mode=custom
     gcloud compute --project=cnn-selab-atl networks subnets create vpx-snet-mgmt --network=vpx-snet-mgmt --region=us-east1 --range=192.168.10.0/24
     <!--NeedCopy-->
    

    Création d’un VPC pour le trafic client ou VIP

     gcloud compute --project=cnn-selab-atl networks create vpx-snet-vip --subnet-mode=custom
     gcloud compute --project=cnn-selab-atl networks subnets create vpx-snet-vip --network=vpx-snet-vip --region=us-east1 --range=172.16.10.0/24
     <!--NeedCopy-->
    

    Créez un VPC pour le trafic serveur ou SNIP sur lequel vous hébergez votre cluster Kubernetes

     gcloud compute --project=cnn-selab-atl networks create vpx-snet-snip --subnet-mode=custom
     gcloud compute --project=cnn-selab-atl networks subnets create vpx-snet-snip --network=vpx-snet-snip --region=us-east1 --range=10.10.10.0/24
     <!--NeedCopy-->
    

    *VPC par console GUI GCP

    Depuis la console Google, sélectionnez Réseau > Réseau VPC > Créer un réseau VPC et entrez les champs obligatoires, comme indiqué ci-dessous. Cliquez ensuite sur Créer.

    GCP

    De même, créez des réseaux VPC pour les cartes réseau côté client et côté serveur afin de créer trois sous-réseaux.

    Remarque :

    Les trois réseaux VPC doivent se trouver dans la même région, qui est us-east1 dans ce scénario.

    GCP

  2. Après avoir créé trois réseaux et trois sous-réseaux sous VPC Network, déployez l’instance Citrix ADC VPX à l’aide du modèle GDM. Assurez-vous que configuration.yml et template.py se trouvent dans le même dossier ou répertoire. Utilisez la commande suivante du SDK Google pour déployer l’instance.

     gcloud deployment-manager deployments create tier1-vpx --config configuration.yml
     <!--NeedCopy-->
    
  3. Une fois le déploiement réussi, accédez à Compute Engine pour consulter la section citrix-adc-tier1-vpx et valider les adresses IP internes.

GCP

Le Citrix ingress controller peut automatiser la configuration de l’itinéraire statique dans le VPX de niveau 1. Configurez l’adresse IP du sous-réseau (SNIP) qui doit appartenir au même sous-net/cloud privé virtuel que le cluster Kubernetes.

Remarque :

Le VPX/MPX de niveau 1 déployé va équilibrer la charge des CPX au sein du cluster Kubernetes. Configurez le SNIP dans le VPX de niveau 1.

À partir d’une session PuTTY sur le VPX de niveau 1, exécutez les commandes suivantes pour ajouter SNIP et activer l’accès de gestion à SNIP :

clear config -force full
add ns ip 10.10.10.20 255.255.255.0 -type snip -mgmt enabled
enable ns mode mbf
<!--NeedCopy-->

Déployer un cluster Kubernetes à l’aide de GKE

Il est possible de déployer le cluster Kubernetes via le SDK Google Cloud ou via la console graphique Google Cloud Platform.

Commande d’API Gcloud pour créer un cluster k8s

gcloud beta container --project "cnn-selab-atl" clusters create "k8s-cluster-with-cpx" --zone "us-east1-b" --username "admin" --cluster-version "1.11.7-gke.12" --machine-type "n1-standard-1" --image-type "COS" --disk-type "pd-standard" --disk-size "100" --scopes "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" --num-nodes "3" --enable-cloud-logging --enable-cloud-monitoring --no-enable-ip-alias --network "projects/cnn-selab-atl/global/networks/vpx-snet-snip" --subnetwork "projects/cnn-selab-atl/regions/us-east1/subnetworks/vpx-snet-snip" --addons HorizontalPodAutoscaling,HttpLoadBalancing --enable-autoupgrade --enable-autorepair
<!--NeedCopy-->

Étapes de la console GUI de Google Cloud

  1. Recherchez un moteur Kubernetes sur la console GCP et cliquez sur Créer un cluster.

    GCP

  2. Créez un cluster dans le même sous-réseau où se trouve votre SNIP VPX (vpx-snet-snip). Ce cluster automatise la transmission de la configuration vers l’ADC de niveau 1 à partir du Citrix ingress controller du cluster K8s.

    GCP

    GCP

  3. Cliquez sur Options avancées pour modifier le sous-réseau sur vpx-snet-snip et sélectionner les champs suivants.

    GCP

  4. Pour accéder à ce cluster depuis le SDK cloud, cliquez sur le bouton Kubernetes Connect to the cluster et collez la commande dans le SDK cloud.

    GCP

  5. Validez le déploiement du cluster GKE en exécutant la commande suivante :

kubectl get nodes
<!--NeedCopy-->

GCP


Déployer un exemple d’application à l’aide de la bibliothèque de fichiers d’exemple

Citrix ADC propose une solution de déploiement d’architecture à deux niveaux permettant d’équilibrer la charge des applications d’entreprise déployées dans des microservices et accessibles via Internet. Le niveau 1 dispose d’équilibreurs de charge lourds tels que VPX/SDX/MPX pour équilibrer la charge du trafic Nord-Sud. Le niveau 2 dispose d’un déploiement CPX pour gérer les microservices et équilibrer la charge du trafic Est-Ouest.

  1. Si vous exécutez votre cluster dans GKE, assurez-vous d’avoir utilisé la liaison de rôles de cluster pour configurer un administrateur de cluster. Vous pouvez le faire à l’aide de la commande suivante.

     kubectl create clusterrolebinding citrix-cluster-admin --clusterrole=cluster-admin --user=<email-id of your google account>.
     <!--NeedCopy-->
    
  2. Accédez au répertoire actuel dans lequel se trouvent les fichiers YAML de déploiement. Exécutez la commande suivante pour obtenir l’état du nœud.

     kubectl get nodes
     <!--NeedCopy-->
    

    GCP

  3. Créez les espaces de noms :

     kubectl create -f namespace.yaml
     <!--NeedCopy-->
    

    Vérifiez la commande d’espace de noms :

     kubectl get namespaces
     <!--NeedCopy-->
    

    GCP

  4. Déployez le fichier rbac.yaml dans l’espace de noms par défaut.

     kubectl create -f rbac.yaml
     <!--NeedCopy-->
    
  5. Déployez le CPX pour les microservices hotdrink, colddrink et guestbook à l’aide des commandes suivantes.

     kubectl create -f cpx.yaml -n tier-2-adc
     kubectl create -f hotdrink-secret.yaml -n tier-2-adc
     <!--NeedCopy-->
    
  6. Déployez les trois microservices pour boissons chaudes, le microservice de type SSL doté d’une architecture en épingle à cheveux.

     kubectl create -f team_hotdrink.yaml -n team-hotdrink
     kubectl create -f hotdrink-secret.yaml -n team-hotdrink
     <!--NeedCopy-->
    
  7. Déployez le microservice pour boissons froides, le microservice de type SSL_TCP.

     kubectl create -f team_colddrink.yaml -n team-colddrink
     kubectl create -f colddrink-secret.yaml -n team-colddrink
     <!--NeedCopy-->
    
  8. Déployez le livre d’invités, un microservice de type NoSQL.

     kubectl create -f team_guestbook.yaml -n team-guestbook
     <!--NeedCopy-->
    
  9. Validez le CPX déployé pour les trois applications ci-dessus. Tout d’abord, obtenez les pods CPX déployés en tant que niveau 2 ADC, puis accédez à CPX par l’interface de ligne de commande.

    ``` Pour obtenir des pods CPX dans l’espace de noms ADC de niveau 2, entrez : kubectl get pods -n tier-2-adc

    Pour obtenir un accès CLI (bash) au pod CPX (pod hotdrinks-cpx), entrez : kubectl exec -it "copy and paste hotdrink CPX pod name from the above step" bash -n tier-2-adc.

    Par exemple,

    kubectl exec -it cpx-ingress-hotdrinks-768b674f76-pcnw4 bash -n tier-2-adc

    Pour vérifier si le serveur CS s’exécute dans le hotdrink-cpx, entrez la commande suivante après l’accès root à CPX : cli-script"sh csvs".

    Par exemple,

    root@cpx-ingress-hotdrinks-768b674f76-pcnw4:/# cli_script.sh "sh csvs"

  10. Déployez le contrôleur d’entrée et d’entrée VPX sur l’espace de noms de niveau 2, qui configure VPX automatiquement. Citrix Ingress Controller (CIC) automatise l’ADC de niveau 1 (VPX).

     kubectl create -f ingress_vpx.yaml -n tier-2-adc
     kubectl create -f cic_vpx.yaml -n tier-2-adc
     <!--NeedCopy-->
    
  11. Ajoutez les entrées DNS dans les fichiers hôtes de votre machine locale pour accéder aux microservices via Internet.

    Pour les clients Windows, accédez à : C:\Windows\System32\drivers\etc\hosts

    Pour les clients macOS, dans le terminal, entrez : sudo nano /etc/hosts `

    Ajoutez les entrées suivantes dans le fichier de l’hôte et enregistrez le fichier.

     hotdrink.beverages.com   xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx)
     colddrink.beverages.com  xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx)
     guestbook.beverages.com  xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx)
     grafana.beverages.com    xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx)
     prometheus.beverages.com xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx)
     <!--NeedCopy-->
    
  12. Vous pouvez désormais accéder à chaque application via Internet. Par exemple, https://hotdrink.beverages.com.

    GCP


Activer les politiques de réécriture et de réponse pour l’exemple d’application

Il est maintenant temps de transférer les politiques de réécriture et de réponse sur VPX via la définition de ressource personnalisée (CRD).

  1. Déployez le CRD pour transférer les politiques de réécriture et de réponse au niveau 1-adc dans l’espace de noms par défaut.
   kubectl create -f crd_rewrite_responder.yaml
   <!--NeedCopy-->
  1. URL de la liste noire Configurez la politique du répondeur hotdrink.beverages.com pour bloquer l’accès à la page café.
   kubectl create -f responderpolicy_hotdrink.yaml -n tier-2-adc
   <!--NeedCopy-->

Après avoir déployé la politique Responder, accédez à la page café sur hotdrink.beverages.com. Vous recevez alors le message suivant.

GCP

  1. Insertion d’en-tête Configurez la politique de réécriture sur colddrink.beverages.com pour insérer l’identifiant de session dans l’en-tête.
   kubectl create -f rewritepolicy_colddrink.yaml -n tier-2-adc
   <!--NeedCopy-->

Après avoir déployé la politique de réécriture, accédez colddrink.beverages.com avec le mode développeur activé sur le navigateur. Dans Chrome, appuyez sur F12 et conservez la catégorie de connexion réseau pour voir l’identifiant de session, qui est inséré par la politique de réécriture sur le niveau 1 de l’adc (VPX).

GCP


Ensembles d’outils open source

  1. Déployez des outils de surveillance de la Cloud Native Computing Foundation (CNCF), tels que Prometheus et Grafana, pour collecter des statistiques de proxy ADC.

     kubectl create -f monitoring.yaml -n monitoring
     kubectl create -f ingress_vpx_monitoring.yaml -n monitoring
     <!--NeedCopy-->
    

Agrégateur de logs Prometheus

  1. Connectez-vous http://grafana.beverages.com et effectuez la configuration unique suivante.

    1. Connectez-vous au portail à l’aide des informations d’identification de l’administrateur.
    2. Cliquez sur Ajouter une source de données et sélectionnez la source de données Prometheus .
    3. Configurez les paramètres suivants et cliquez sur le bouton Enregistrer et tester .

    GCP

Tableau de bord visuel Grafana

  1. Dans le panneau de gauche, sélectionnez l’option Importer et téléchargez le fichier grafana_config.json fourni dans le dossier yamlFiles. Vous pouvez maintenant consulter le tableau de bord de Grafana avec les statistiques de base de l’ADC.

GCP


Supprimer un déploiement

  1. Pour supprimer le déploiement de Citrix VPX (niveau 1 à adc), accédez à la console Google SDK CLI pour supprimer l’instance :

    gcloud deployment-manager deployments delete tier1-vpx
    <!--NeedCopy-->
    
  2. Pour supprimer le cluster GKE Kubernetes, accédez à la console GCP, sélectionnez le cluster Kubernetes, puis cliquez sur Supprimer pour effacer le cluster.

    GCP