Concepts avancés

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

Présentation du produit Citrix pour l’architecture et les composants de GCP K8

Les cinq principaux composants Citrix de GCP

  1. Citrix ADC VPX en tant que 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 GCP et d’utiliser les fonctionnalités d’équilibrage de charge et de gestion du trafic Citrix pour vos besoins professionnels. 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 utilisant Google Kubernetes Engine (GKE) pour former la plate-forme conteneur.

    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 à l’aide de la bibliothèque de fichiers YAML.

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

    • Exemple de service Web de boisson chaude dans le fichier Kubernetes YAML
    • Exemple de service Web Colddrink dans le fichier Kubernetes YAML
    • Exemple de service Web Livre d’or dans le fichier Kubernetes YAML
    • Exemple de service de cartographie Grafana dans le fichier YAML Kubernetes
    • Exemple de service de journalisation Prometheus dans le fichier Kubernetes YAML

    GCP

  4. Déployez le contrôleur d’entrée Citrix pour l’automatisation Citrix ADC de niveau 1 dans le cluster GKE.

    Le contrôleur d’entrée Citrix 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 les mises à jour de la ressource d’entrée et reconfigure l’équilibrage de charge d’entrée en conséquence. Le contrôleur d’entrée Citrix 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 contrôleur d’entrée Citrix de l’instance VPX de niveau 1. Les fichiers automatisent plusieurs configurations sur le VPX de niveau 1, y compris :

    • Réécrire des stratégies et des actions
    • Stratégies et actions des intervenants
    • Contenu Changement de règles d’URL
    • Ajout/Suppression de services d’équilibrage de charge CPX

    Le fichier YAML du contrôleur d’entrée Citrix 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 à l’extérieur du cluster Kubernetes (Tier 1) et Citrix ADC CPX à l’intérieur du cluster Kubernetes (Tier 2).

Le VPX/MPX de niveau 1 équilibrerait la charge du CPX de niveau 2 dans le cluster Kubernetes. Il s’agit d’un modèle de déploiement générique largement utilisé indépendamment de la plate-forme, qu’il s’agisse de Google Cloud, d’Amazon Web Services, d’Azure ou d’un déploiement local.

Automatisation du niveau 1 VPX/MPX

La charge VPX/MPX de niveau 1 équilibre automatiquement les CPX de niveau 2. Le contrôleur d’entrée Citrix complète les configurations d’automatisation en s’exécutant en tant que module à l’intérieur du cluster Kubernetes. Il configure une classe d’entrée distincte pour le VPX/MPX de niveau 1 afin que la configuration ne se supervise pas avec d’autres ressources d’entrée.

GCP


Présentation du déploiement Citrix

Installer et configurer le 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 (obligatoire) :

  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 votre compte Google en utilisant gcloud API gcloud auth login.

  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-adc) sur GCP

  1. Instances VPC GCP : pour traiter 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 serveur (vpx-snet-snip)

    Remarque :

    Construisez les VPC réseau à trois bras avant de déployer des instances de VM.

    Un VPC peut être créé par SDK à l’aide d’API gcloud ou via Google Cloud Platform Console VPC par l’API gcloud

    Créer un VPC pour le trafic de gestion ou 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éer 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éer un VPC pour le trafic serveur ou SNIP où 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-->
    

    Console GUI VPC by GCP Depuis la console Google, sélectionnez Réseau > Réseau VPC > Créer un réseau VPCet entrez les champs requis, comme indiqué ci-dessous. Cliquez ensuite sur Créer.

    GCP

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

    Remarque :

    Les trois réseaux VPC devraient être 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 sont 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. Après un déploiement réussi, accédez à Compute Engine pour vérifier la section citrix-adc-tier1-vpx et valider les adresses IP internes.

GCP

Le contrôleur d’entrée Citrix peut automatiser la configuration d’itinéraire statique dans le VPX de niveau 1. Configurez l’adresse IP du sous-réseau (SNIP) qui doit être du même cloud privé sous-net/virtuel du cluster Kubernetes.

Remarque :

Le VPX/MPX de niveau 1 déployé va équilibrer la charge CPX dans le 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

On peut déployer le cluster Kubernetes soit par Google Cloud SDK ou via la console graphique Google Cloud Platform.

Commande de l’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-->

Procédure de console de Google Cloud Platform

  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 poussée de configuration dans l’ADC de niveau 1 à partir du contrôleur d’entrée Citrix dans le 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 à partir du 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 l’exemple de bibliothèque de fichiers YAML

Citrix ADC offre la solution de déploiement d’architecture à deux niveaux pour équilibrer la charge des applications de niveau 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 North-South. Le niveau 2 dispose d’un déploiement CPX pour gérer les microservices et équilibrer le trafic East-West.

  1. Si vous exécutez votre cluster dans GKE, assurez-vous que vous avez utilisé la liaison de rôle de cluster pour configurer un cluster-admin. Vous pouvez le faire en utilisant 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 courant où vous avez 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 namespace :

     kubectl get namespaces
     <!--NeedCopy-->
    

    GCP

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

     kubectl create -f rbac.yaml
     <!--NeedCopy-->
    
  5. Déployez le CPX pour les microservices de boissons chaudes, de boissons froides et de livres d’or à 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 microservices à trois boissons chaudes — le microservice de type SSL avec l’architecture à é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 de boisson froide — 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’or — un microservice de type NoSQL.

     kubectl create -f team_guestbook.yaml -n team-guestbook
     <!--NeedCopy-->
    
  9. Valider 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 obtenez l’accès CLI à CPX.

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

    Pour obtenir un accès CLI (bash) au conteneur CPX (hotdrinks-cpx pod), 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 est en cours d’exécution 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 dans 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. Maintenant, vous pouvez accéder à chaque application sur Internet. Par exemple, https://hotdrink.beverages.com.

    GCP


Activer les stratégies de réécriture et de répondeur pour l’exemple d’application

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

  1. Déployez le CRD pour pousser les stratégies de réécriture et de réponse vers le niveau 1-adc dans l’espace de noms par défaut.
   kubectl create -f crd_rewrite_responder.yaml
   <!--NeedCopy-->
  1. URL de liste noire Configurez la stratégie Responder surhotdrink.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 stratégie Responder, accédez à la page café surhotdrink.beverages.com. Ensuite, vous recevez le message suivant.

GCP

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

Après avoir déployé la stratégie de réécriture, accédezcolddrink.beverages.com au mode développeur activé sur le navigateur. Dans Chrome, appuyez sur F12 et conservez le journal dans la catégorie réseau pour afficher l’ID de session, qui est inséré par la stratégie de réécriture sur le niveau 1-adc (VPX).

GCP


Jeux d’outils Open Source

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

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

Agrégateur de log Prométhée

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

    1. Connectez-vous au portail à l’aide des informations d’identification d’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 voir le tableau de bord Grafana avec les statistiques ADC de base répertoriées.

GCP


Supprimer un déploiement

  1. Pour supprimer le déploiement 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 et cliquez sur Supprimer pour effacer le cluster.

    GCP