Configurer un ensemble de membres de groupe de services souhaité pour un groupe de services dans un appel d’API NITRO

La prise en charge est ajoutée pour configurer un ensemble de membres de groupe de services souhaité pour un groupe de services dans un appel d’API NITRO. Une nouvelle API, Desired State API, est ajoutée pour prendre en charge cette configuration. En utilisant l’API d’état désiré, vous pouvez :

  • Fournissez une liste des membres du groupe de services dans une seule requête PUT sur la ressource « servicegroup_servicegroupmemberlist_binding ».
  • Indiquez leur poids et leur état (facultatif) dans cette requête PUT.
  • Synchronisez efficacement la configuration de l’appliance avec les modifications de déploiement autour des serveurs d’applications.

L’appliance Citrix ADC compare le jeu de membres souhaité demandé avec le jeu de membres configuré. Ensuite, il lie automatiquement les nouveaux membres et délie les membres qui ne sont pas présents dans la demande.

Remarque :

  • Cette fonctionnalité est prise en charge uniquement pour les groupes de services de typeAPI.
  • Vous pouvez uniquement lier des services basés sur l’adresse IP à l’aide de l’API État désiré, les services basés sur le nom de domaine ne sont pas autorisés.
  • Auparavant, un seul membre du groupe de services peut être lié dans un appel NITRO.

Cas d’utilisation : Synchroniser les modifications de déploiement vers l’appliance Citrix ADC dans des déploiements à grande échelle, tels que Kubernetes

Dans les déploiements à grande échelle et hautement dynamiques (par exemple Kubernetes), le défi consiste à maintenir la configuration de l’appliance à jour en fonction du rythme de changement des déploiements afin de servir avec précision le trafic applicatif. Dans de tels déploiements, les contrôleurs (Ingress ou E-W Controller) sont responsables de la mise à jour de la configuration de ADC. Chaque fois qu’il y a des modifications au déploiement, le serveur kube-api envoie l’ensemble effectif des points de terminaison via ‘Endpoints event’ au Controller. Le Controller utilise l’approche Read-Delta-Modify où il effectue les opérations suivantes :

  • Récupère le jeu de points de terminaison actuellement configuré (ensemble de membres de groupe de services d’un groupe de services) pour le service à partir de l’appliance ADC.
  • Compare le jeu de points de terminaison configuré avec l’ensemble de l’événement reçu.
  • Lie les nouveaux points de terminaison (membres du groupe de services) ou délie les points de terminaison supprimés.

Étant donné que le taux de modification et la taille des services sont élevés dans cet environnement, cette méthode de configuration n’est pas efficace et peut retarder les mises à jour de configuration.

L’API d’état désiré résout ce problème en acceptant le jeu de membres prévu pour un groupe de services dans une seule API, mettant ainsi à jour efficacement la configuration.

Créer un groupe de services de type API à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez ;

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale <autoScale>]

Exemple :

add serviceGroup svg1 HTTP -autoScale API

Vous pouvez configurer les paramètres autoDisablegraceful, autoDisabledelay et autoScale à l’aide de la commande add serviceGroup ou set serviceGroup.

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale <autoScale>] [-autoDisablegraceful ( YES | NO)] [-autoDisabledelay <secs>]

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale (API |CLOUD | DISABLED| DNS |POLICY)]

set serviceGroup <serviceGroupName [-autoDisablegraceful ( YES | NO)] [-autoDisabledelay <secs>]

set serviceGroup <serviceGroupName [-autoScale (API |CLOUD | DISABLED| DNS |POLICY)]

Exemple :

add serviceGroup svg1 HTTP autoDisablegraceful YES -autoDisabledelay 100

add serviceGroup svg1 HTTP -autoScale API

set serviceGroup svg1 -autoDisablegraceful  YES -autoDisabledelay 100

set serviceGroup svg1 -autoScale API

Arguments

autoDisablegraceful

Indique l’arrêt progressif du service. Si cette option est activée, l’appliance attend la fermeture de toutes les connexions en attente à ce service avant de supprimer le service. Pour les clients qui ont déjà une session persistante sur le système, de nouvelles connexions ou demandes continuent d’être envoyées à ce service. Le membre de service est supprimé uniquement s’il n’y a pas de connexions en attente. Valeur par défaut : NO

autoDisabledelay

Indique le temps autorisé (en secondes) pour un arrêt progressif. Pendant cette période, de nouvelles connexions ou demandes continuent d’être envoyées à ce service pour les clients qui ont déjà une session persistante sur le système. Les connexions ou les demandes de nouveaux clients qui n’ont pas de session de persistance sur le système ne sont pas envoyées au service. Au lieu de cela, ils sont équilibrés entre les autres services disponibles. Après l’expiration du délai, le membre du service est supprimé.

API AutoScale

Active l’utilisation de l’API État désiré pour lier le jeu de membres à un groupe de services prévu. Vous pouvez définir le groupe de services de non-mise à l’échelle automatique au type de mise à l’échelle automatique de l’API État désiré, si toutes les conditions fournies correspondent.

La commande set ServiceGroup AutoScale peut échouer si les liaisons de membres existantes répondent à l’une des conditions suivantes :

  • Si le serveur lié au groupe de services est un serveur de noms ou un serveur de domaine.
  • Si le nom du serveur lié au groupe de services est une adresse IP, il doit correspondre à l’adresse IP du serveur réelle. Dans l’exemple suivant, le nom du serveur et l’adresse IP du serveur ne correspondent pas.
    • CLI : add server IPaddress server name
    • Exemple : add server 1.2.3.4 4.3.2.1
  • Si le nom du serveur de bouclage est autre que 127.0.0.1 ou 0000:0000:0000:0000:0000:0000:0000:0001.
  • Si vous choisissez différents types de mise à l’échelle automatique (Cloud, API, DNS et Stratégie) dans une commande ServiceGroup définie et ajoutez la commande ServiceGroup.

Important :

  • Les paramètres autoDisablegraceful et autoDisabledelay ne s’appliquent qu’aux groupes de services de type Autoscale « API » et « CLOUD ».
  • Si les paramètres autoDisablegraceful ou autoDisabledelay ne sont pas configurés, les membres du service sont immédiatement supprimés.

Délier gracieusement un membre du groupe de services

Si l’un des membres du groupe de services ne figure pas dans la liste d’état souhaitée, ces membres sont gracieusement non liés en fonction de la configuration des paramètres autoDisablegraceful ou autoDisabledelay.

  • Si l’un de ces paramètres est défini, le membre du groupe de services est non lié gracieusement.
  • Si aucun de ces paramètres n’est défini, le membre du groupe de services est immédiatement indépendant.

Remarque :

  • Les membres du groupe de services identifiés pour unbind gracieux ne s’affichent que lorsque la commande show servicegroup est exécutée.
  • Vous ne pouvez pas effectuer d’opération (définie, non définie, par exemple) sur le membre du groupe de services identifié pour la déliaison gracieuse.

La figure suivante affiche un exemple de commande show servicegroup.

Exemple de commande show service group

Créer un groupe de services de type API à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Groupes de services, puis cliquez sur Ajouter.

  2. En mode AutoScale, sélectionnez API.

Configurez l’arrêt progressif ou un délai pour un groupe de services de type API à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Groupes de services.

    Paramètres de base des groupes de services

  2. En mode AutoScale, sélectionnez API.

  3. Dans Auto Disable Graceful, sélectionnez YES.

  4. Dans Auto Disable Delay, entrez le temps d’attente pour un arrêt progressif.

Remarque : Les champs Auto Disable Graceful ou Auto Display Delay sont activés uniquement si vous sélectionnez API ou CLOUD en mode AutoScale.