Architecture Autoscale pour Google Cloud

La console NetScaler gère la distribution du trafic client à l’aide de Google Network Load Balancer. Le diagramme suivant illustre la manière dont la mise à l’échelle automatique se produit à l’aide de l’équilibreur de charge réseau Google en tant que distributeur de trafic :

Architecture Google Cloud pour la mise à l'échelle automatique

L’équilibreur de charge réseau Google est le niveau de distribution vers les nœuds du cluster. Le Network Load Balancer gère le trafic client et le distribue aux clusters NetScaler VPX. L’équilibreur de charge réseau envoie le trafic client aux nœuds de cluster NetScaler VPX qui sont disponibles dans le groupe de dimensionnement automatique de la console NetScaler entre les zones.

La console NetScaler déclenche l’action de scale-out ou de scale-in au niveau du cluster. Lorsqu’un scale-out est déclenché, les machines virtuelles enregistrées sont provisionnées et ajoutées au cluster. De même, lorsqu’un scale-in est déclenché, les nœuds sont supprimés et déprovisionnés des clusters NetScaler VPX.

Le groupe NetScaler Console Autoscale est un groupe d’instances NetScaler qui équilibrent la charge des applications en tant qu’entité unique et déclenchent la mise à l’échelle automatique en fonction des valeurs de paramètres de seuil configurées.

Fonctionnement de la mise à l’échelle automatique

L’organigramme suivant illustre le workflow de mise à l’échelle automatique :

Diagramme Citrix Autoscale

La console NetScaler collecte les statistiques (processeur, mémoire et débit) des clusters provisionnés par Autoscale pour chaque minute.

Les statistiques sont évaluées en fonction des seuils de configuration. En fonction des statistiques, le scale-out ou le scale-in est déclenché. Le scale-out est déclenché lorsque les statistiques dépassent le seuil maximum. La mise à l’échelle est déclenchée lorsque les statistiques fonctionnent en dessous du seuil minimum.

Si une scale-out est déclenchée :

  1. Le nouveau nœud est provisionné.

  2. Le nœud est attaché au cluster et la configuration est synchronisée entre le cluster et le nouveau nœud.

  3. Le nœud est enregistré auprès de la console NetScaler.

  4. Les nouvelles adresses IP des nœuds sont mises à jour dans l’équilibreur de charge réseau Google.

Si une mise à l’échelle est déclenchée :

  1. Le nœud est identifié pour être supprimé.

  2. Arrêtez les nouvelles connexions au nœud sélectionné.

  3. Le nœud est détaché du cluster, désenregistré de la console NetScaler, puis déprovisionné depuis Google Cloud.

Remarque

Lorsque l’application est déployée, un jeu d’adresses IP est créé sur des clusters dans chaque zone de disponibilité. Ensuite, les adresses IP du domaine et de l’instance sont enregistrées auprès de l’équilibreur de charge réseau Google. Lorsque l’application est supprimée, les adresses IP du domaine et de l’instance sont désenregistrées de l’équilibreur de charge réseau Google. Ensuite, l’ensemble d’adresses IP est supprimé.

Exemple de scénario de mise à l’échelle automatique

Considérez que vous avez créé un groupe de mise à l’Autoscale nommé asg_arn dans une zone de disponibilité unique avec la configuration suivante.

  • Paramètres de seuil sélectionnés — Utilisation de la mémoire.

  • Limite de seuil définie pour la mémoire :

    • Limite minimale : 40

    • Limite maximale : 85

  • Durée du visionnage : 2 minutes.

  • Temps de recharge : 10 minutes.

  • Temps d’attente pendant la mise hors service : 10 minutes.

  • Durée de vie du DNS : 10 secondes.

Une fois le groupe Autoscale créé, les statistiques sont collectées à partir du groupe Mise à Autoscale. La stratégie Autoscale évalue également si un événement de Autoscale est en cours. Si la mise à l’échelle automatique est en cours, attendez que cet événement se termine avant de collecter les statistiques.

Graphique linéaire Citrix Autoscale

La séquence des événements

  1. L’utilisation de la mémoire dépasse le seuil de T2. Toutefois, la mise à l’échelle n’est pas déclenchée car elle n’a pas violé la durée de la montre spécifiée.

  2. Le scale-out est déclenché à T5 après un dépassement d’un seuil maximum pendant 2 minutes (durée de la montre) en continu.

  3. Aucune mesure n’a été prise pour la violation entre T5 et T10 car le provisionnement du nœud est en cours.

  4. Le nœud est provisionné sur T10 et ajouté au cluster. La période de recharge a commencé.

  5. Aucune mesure n’a été prise pour la violation entre le T10-T20 en raison de la période de recharge. Cette période garantit la croissance organique des instances d’un groupe Autoscale. Avant de déclencher la prochaine décision de mise à l’échelle, il attend que le trafic actuel se stabilise et se situe en moyenne sur l’ensemble d’instances actuel.

  6. L’utilisation de la mémoire passe en dessous du seuil minimum à T23. Toutefois, la mise à l’échelle n’est pas déclenchée parce qu’elle n’a pas violé la durée de la montre spécifiée.

  7. La mise à l’échelle est déclenchée à T26 lorsque le seuil minimum est dépassé pendant 2 minutes (durée de la montre) en continu. Un nœud du cluster est identifié pour le désapprovisionnement.

  8. Aucune mesure n’a été prise pour remédier à la faille entre le T26 et le T36, car la console NetScaler attend de vider les connexions existantes. Pour la mise à l’échelle automatique basée sur DNS, TTL est en vigueur.

    Remarque

    Pour la mise à l’échelle automatique basée sur le DNS, la console NetScaler attend la durée de vie (TTL) spécifiée. Ensuite, il attend que les connexions existantes s’écoulent avant de lancer le désapprovisionnement des nœuds.

  9. Aucune mesure n’a été prise pour la violation entre T37-T39 car le déprovisionnement des nœuds est en cours.

  10. Le nœud est retiré du cluster et déprovisionné sur T40 .

Toutes les connexions au nœud sélectionné ont été drainées avant de lancer le déprovisioning du nœud. Par conséquent, la période de recharge est ignorée après la suppression de la mise en service du nœud.

Architecture Autoscale pour Google Cloud