Contrôleur d'entrée Citrix ADC

Autoscaler de pod horizontal pour Citrix ADC CPX avec métriques personnalisées

Lors du premier déploiement de charges de travail dans un cluster Kubernetes, il est difficile de prévoir exactement les besoins en ressources et la façon dont ces exigences peuvent évoluer dans un environnement de production. À l’aide de l’autoscaler horizontal de pod (HPA), vous pouvez automatiquement dimensionner le nombre d’espaces dans votre charge de travail en fonction de différentes mesures, telles que l’utilisation réelle des ressources. HPA est une ressource fournie par Kubernetes qui met à l’échelle les ressources basées sur Kubernetes, telles que les déploiements, les jeux de réplicas et les contrôleurs de réplication.

Traditionnellement, le HPA obtient les métriques requises à partir d’un serveur de métriques. Il ajuste ensuite périodiquement le nombre de réplicas dans un déploiement pour faire correspondre les mesures moyennes observées à la cible que vous spécifiez.

HPA-traditional-metric-server

Citrix fournit une solution HPA basée sur des métriques personnalisées pour Citrix ADC CPX. Par défaut, le serveur de métriques fournit uniquement des mesures de CPU et de mémoire pour un espace. Citrix ADC fournit un ensemble complet de mesures intégrées pour analyser les performances des applications et, sur la base de ces mesures, vous pouvez prendre un meilleur jugement sur la mise à l’échelle automatique. Un HPA basé sur des métriques personnalisées est une meilleure solution, comme la mise à l’échelle automatique basée sur le taux de requêtes HTTP, les transactions SSL ou la bande passante ADC.

Solution HPA Citrix ADC CPX

La solution Citrix ADC CPX HPA comprend les composants suivants :

  • Citrix ADC VPX : Citrix ADC VPX ou MPX est déployé au niveau 1 et équilibre la charge des demandes des clients entre les espaces Citrix ADC CPX au sein du cluster.

  • Citrix ADC CPX : Citrix ADC CPX déployé à l’intérieur du cluster agit en tant qu’équilibreur de charge de niveau 2 pour les espaces d’application de point de terminaison. L’espace Citrix ADC CPX est exécuté avec le Citrix ingress controller et l’exportateur de métriques Citrix ADC en tant que sidecars.

  • Citrix ingress controller : le Citrix ingress controller est un contrôleur d’entrée qui est construit autour de Kubernetes Ingress et configure automatiquement Citrix ADC en fonction de la configuration de la ressource Ingress. Le Citrix ingress controller déployé en tant qu’espace autonome configure le Citrix ADC VPX et les autres instances configurent les Citrix ADC CPX.

  • Exportateur de métriques Citrix ADC : l’exportateur de métriques Citrix ADC exporte les mesures de performance des applications vers le système de surveillance open source Prometheus. L’exportateur de métriques Citrix ADC collecte les métriques de Citrix ADC CPX et les expose dans un format que Prometheus peut comprendre.

  • Prometheus : Prometheus est une boîte à outils de surveillance et d’alerte des systèmes open source. Prometheus est utilisé pour collecter des métriques auprès des Citrix ADC CPX et les exposer à l’aide d’un adaptateur Prometheus interrogé par le contrôleur HPA pour vérifier les métriques.

  • Adaptateur Prometheus : l’adaptateur Prometheus contient une implémentation de l’API de métriques de ressources Kubernetes et de l’API de métriques personnalisées. Cet adaptateur est adapté pour une utilisation avec le HPA autoscaling/v2 dans Kubernetes version 1.6+. Il peut également remplacer le serveur de métriques sur les clusters qui exécutent déjà Prometheus et collecter les métriques appropriées.

Le schéma suivant est une représentation visuelle du fonctionnement de la solution HPA Citrix ADC CPX.

Citrix-cpx-hpa-solution

Le Citrix ADC VPX de niveau 1 équilibre la charge des processeurs Citrix ADC au niveau 2. Applications d’équilibrage de charge Citrix ADC CPX. D’autres composants tels que Prometheus, l’adaptateur Prometheus et un contrôleur HPA sont également déployés.

Le contrôleur HPA continue d’interroger l’adaptateur Prometheus pour obtenir des métriques personnalisées telles que le taux de requêtes HTTP ou la bande passante. Chaque fois que la limite définie par l’utilisateur dans le HPA est atteinte, le contrôleur HPA met à l’échelle le déploiement Citrix ADC CPX et crée un autre espace Citrix ADC CPX pour gérer la charge.

Déployer la solution HPA Citrix ADC CPX

Effectuez les étapes suivantes pour déployer la solution HPA Citrix ADC CPX.

  1. Clonez le dépôt citrix-k8s-ingress-controller depuis GitHub à l’aide de la commande suivante.

    git clone https://github.com/citrix/citrix-k8s-ingress-controller.git
    

    Après le clonage, remplacez votre répertoire par le dossier HPA à l’aide de la commande suivante.

    cd citrix-k8s-ingress-controller/blob/master/docs/how-to/hpa
    
  2. Dans le répertoire HPA, ouvrez et modifiez le fichier values.sh et définissez les valeurs suivantes pour Citrix ADC VPX.

    • VPX_IP: adresse IP du Citrix ADC VPX
    • VPX_PASSWORD: le mot de passe de l’utilisateur nsroot sur Citrix ADC VPX
    • VIRTUAL_IP_VPX: adresse IP à laquelle l’exemple d’application livre d’or est accédé.
  3. Créez toutes les ressources nécessaires en exécutant le fichier create_all.sh.

    ./create_all.sh
    

    Cette étape crée les ressources suivantes :

    • Prometheus et Grafana pour la surveillance
    • Citrix ADC CPX avec le Citrix ingress controller et l’exportateur de métriques en tant que sidecars
    • Citrix ingress controller en tant qu’espace autonome pour configurer Citrix ADC VPX
    • Un exemple d’application de livre d’or
    • Contrôleur HPA pour surveiller le déploiement autoscale Citrix ADC CPX
    • Adaptateur Prometheus pour exposer les métriques personnalisées
  4. Ajoutez une entrée dans le fichier hosts. L’itinéraire doit être ajouté au fichier hosts pour acheminer le trafic de l’application livre d’or vers l’adresse IP virtuelle Citrix ADC VPX. Pour la plupart des distributions Linux, le fichier hosts est présent dans le dossier /etc.

  5. Envoyez du trafic généré et vérifiez le déploiement autoscale Citrix ADC CPX.

    Le HPA de déploiement Citrix ADC CPX a été configuré de telle sorte que lorsque le taux moyen de requêtes HTTP du Citrix ADC CPX dépasse 20 demandes par seconde, il se met à l’échelle automatiquement. Vous pouvez utiliser les scripts suivants fournis dans le dossier HPA pour envoyer du trafic :

    • 16_curl.sh - Envoyer 16 requêtes HTTP par seconde (inférieur au seuil)
    • 30_curl.sh - Envoyer 30 requêtes HTTP par seconde (supérieur au seuil)

    a. Exécutez le 16_curl.sh script pour envoyer 16 demandes HTTP par seconde au Citrix ADC CPX.

       ./16_curl.sh
    

    Le diagramme suivant montre un tableau de bord Grafana qui affiche les requêtes HTTP par seconde. Tableau de bord Grafana lorsque 16 requêtes HTTP sont envoyées par seconde

    La sortie suivante montre l’état du HPA avec 16 RPS HTTP. État HPA avec 16 RPS HTTP

    b. Exécutez le 30_curl.sh script pour envoyer 30 demandes HTTP par seconde à Citrix ADC CPX.

       ./30_curl.sh
    

    Lorsque vous exécutez ce script, le seuil de 20 demandes défini a été dépassé et le déploiement Citrix ADC CPX passe automatiquement d’un espace à deux espaces. La valeur moyenne de la mesure passe HTTP request rate également de 30 à 15 car il existe deux espaces Citrix ADC CPX.

    La sortie suivante montre l’état du HPA lorsque la cible est franchie.

    HPA-cpx-exceeding-threshold

    La sortie suivante montre que le nombre de réplicas de Citrix ADC CPX est passé à 2 et que la valeur moyenne de HTTP RPS est descendue à 15.

    CPX-autoscale

    Le diagramme suivant montre un tableau de bord Grafana avec deux Citrix ADC CPX équilibrant la charge du trafic.

    HPA-grafana-dashboard

  6. Nettoyez en exécutant le delete_all.sh script.

    ./delete_all.sh
    

Remarque :

Si le Citrix ADC VPX de niveau 1 n’est pas présent, utilisez NodePort pour exposer le service Citrix ADC CPX.

Autoscaler de pod horizontal pour Citrix ADC CPX avec métriques personnalisées