Utiliser la fonctionnalité de poids sur un membre du Load Balancer
Objectif
Ce guide explique comment utiliser la fonctionnalité de poids pour supprimer temporairement un membre du Load Balancer de la réception du trafic à des fins de maintenance.
Utilisation de la fonction de pondération
Octavia prend en charge la configuration du poids des membres de 0 à 256.
Le poids d'un membre détermine la portion des requêtes ou des connexions qu'il traite par rapport aux autres membres du pool. Un poids plus élevé signifie qu'il recevra plus de trafic. Par exemple, un membre avec un poids de 10 reçoit cinq fois plus de trafic qu'un membre avec un poids de 2.
Le poids doit être un nombre compris entre 1 et 256. Une valeur de 0 signifie que le membre ne reçoit pas de nouvelles connexions mais continue à traiter les connexions existantes.
En définissant le poids sur 0, le membre est effectivement retiré du pool de trafic, ce qui vous permet d'effectuer des mises à niveau ou des opérations de maintenance sans interruption de service.
Prérequis
- Un compte OVHcloud actif.
- Un projet Public Cloud OVHcloud.
- Un Load Balancer configuré avec plusieurs membres.
- La CLI OpenStack installée et configurée.
En pratique
Étape 1 - Créer un Load Balancer avec deux membres
Utilisez le référentiel suivant pour créer un Load Balancer avec deux membres :
Vérifiez que les deux membres reçoivent du trafic en exécutant ce script :
Les réponses des deux membres doivent être alternées :
Étape 2 - Définir le poids d'un membre sur 0
Connectez-vous à l’interface APIv6 d’OVHcloud en utilisant ce guide de premiers pas avec l’API OVHcloud.
Si l'identifiant du projet est inconnu, les appels d'API ci-dessous permettent de le récupérer.
Cet appel permet de récupérer la liste des projets:
Cet appel identifie le projet via le champ « description ».
L'appel ci-dessous permet de récupérer l'identifiant du pool. Complétez les champs avec les informations précédemment obtenues :
- serviceName : ID du projet Public Cloud sous la forme d'une chaîne de 32 caractères.
- regionName : nom de votre région.
Vous pouvez laisser le champ « loadbalancerId » vide afin d'obtenir tous les pools créés dans la région spécifiée.
L'appel ci-dessous permet de récupérer l'identifiant du membre (member), complétez les champs avec les informations précédemment obtenues :
- serviceName : ID du projet Public Cloud sous la forme d'une chaîne de 32 caractères.
- regionName : nom de votre région.
- poolId : ID du pool sous la forme d'une chaîne de 32 caractères.
Vous pouvez mettre à jour un membre du pool avec l'appel API suivant :
Remplissez les champs avec les informations précédemment obtenues :
- serviceName : ID du projet Public Cloud sous la forme d'une chaîne de 32 caractères.
- regionName : nom de votre région.
- poolId : ID du pool sous la forme d'une chaîne de 32 caractères.
- memberId : ID de membre sous forme de chaîne de 32 caractères.
- weight : Définissez le poids sur 0.
Cliquez sur Execute.

Il existe deux façons d'accéder à l'interface Horizon :
- Pour vous connecter avec l'authentification unique OVHcloud (SSO) : utilisez le lien
Horizondans le menu de gauche sous « Interfaces de gestion » après avoir ouvert votre projetPublic Clouddans l'espace client OVHcloud. - Pour vous connecter avec un utilisateur OpenStack spécifique : ouvrez la page de connexion à Horizon et entrez les identifiants de l'utilisateur OpenStack précédemment créé, puis cliquez sur
Se connecter.
Sélectionnez la région appropriée dans le menu déroulant en haut à gauche.
Dans l'onglet de gauche, cliquez sur l'onglet Network puis sur Load Balancers.
Cliquez sur le load balancer concerné.
Dans l'onglet, cliquez sur Pools puis sur le pool dans lequel se trouve le membre.

Dans l'onglet, cliquez sur Members puis sur Edit Member.

Modifiez le poids (Weight) à 0, puis cliquer sur Update.

Pour empêcher le trafic d'être routé vers un membre spécifique, définissez son poids sur 0 :
Étape 3 - Vérifier le statut du membre
Après avoir défini le poids du membre sur 0, son statut passe de ONLINE à DRAINING.
Il est important de noter que dans le système actuel, le membre restera dans l'état DRAINING même après que tout le trafic ait été vidé.
Cela peut être déroutant car certains utilisateurs s'attendent à un statut final de DRAINED une fois que tout le trafic a été redirigé. Cependant, le système ne passe pas automatiquement à DRAINED.
- DRAINING signifie simplement que le membre ne reçoit plus de trafic, et non pas qu'il draine toujours activement le trafic.
- L'état DRAINED n'est pas encore pris en charge par l'API OpenStack actuelle.
Si avoir un statut final DRAINED est critique pour vos opérations, il est recommandé de soumettre une demande de fonctionnalité à OVHcloud pour cette fonctionnalité lors d'une prochaine mise à jour. Cependant, cela ne sera possible qu'une fois cette fonctionnalité prise en charge par OpenStack.
Utilisez l'appel API suivant :
Pour vérifier l'état du membre, cliquez sur Network dans l'onglet de gauche puis sur Load Balancers.
Cliquez sur le load balancer concerné.
Dans l'onglet, cliquez sur Pools puis sur le pool dans lequel se trouve le membre.
Cliquez sur l'onglet Members :

Vous pouvez vérifier l'état du membre à l'aide de la commande suivante :
Vous devriez voir :
Créez un fichier .tf pour gérer une ressource de membres V2 dans OpenStack. Par exemple :
Remplacez <POOL_ID> par l'ID de votre Pool. Pour plus de détails sur les options disponibles pour cette ressource, référez-vous à la documentation officielle pour la ressource openstack_lb_monitor_v2 sur le registre Terraform.
Application de la configuration
Pour appliquer votre configuration Terraform :
- Exécutez
terraform initpour initialiser le répertoire de travail Terraform. - Exécutez
terraform applypour appliquer les modifications définies dans votre configuration.
Vérification
Après avoir exécuté terraform apply, Terraform vous fournira un résumé des ressources créées, modifiées ou supprimées. Ceci confirme la création ou la mise à jour de votre moniteur d'intégrité.
Étape 4 - Confirmer que le trafic est dirigé vers le membre actif
Le membre dont le poids est égal à 0 aura un état de fonctionnement (Operating Status) Draining. Exécutez à nouveau le script de test :
Vous ne devriez maintenant voir que les réponses de member_1 :
Étape 5 - Effectuer la maintenance
Maintenant que member_0 ne reçoit plus de trafic, vous pouvez effectuer en toute sécurité des tâches de maintenance ou de mise à niveau.
Étape 6 - Restaurer le trafic vers le membre
Une fois la maintenance terminée, réglez le poids de member_0 sur sa valeur d'origine (par exemple, 1) :
Vous pouvez mettre à jour un membre du pool avec l'appel API suivant :
Remplissez les champs avec les informations précédemment obtenues :
- serviceName : ID du projet Public Cloud sous la forme d'une chaîne de 32 caractères.
- regionName : nom de votre région.
- poolId : ID du pool sous la forme d'une chaîne de 32 caractères.
- memberId : ID de membre sous forme de chaîne de 32 caractères.
- weight : Définissez le poids sur 1.
Cliquez sur Execute.

Connectez-vous à l'interface Horizon.
Sélectionnez la région appropriée dans le menu déroulant en haut à gauche.
Dans l'onglet de gauche, cliquez sur Network, puis sur Load Balancers.
Cliquez sur le load balancer concerné.
Dans l'onglet, cliquez sur Pools puis sur le pool dans lequel se trouve le membre.

Cliquez sur l'onglet Members, puis sur Edit Member à côté du membre correspondant.

Vous pouvez modifier le Poids (Weight) à 1 puis cliquer sur Update

Pour restaurer le trafic routé vers un membre spécifique, définissez son poids sur 1 :
Créez un fichier .tf pour gérer une ressource de membres V2 dans OpenStack. Par exemple :
Remplacez <POOL_ID> par l'ID de votre Pool. Pour plus de détails sur les options disponibles pour cette ressource, référez-vous à la documentation officielle pour la ressource openstack_lb_monitor_v2 sur le registre Terraform.
Application de la configuration
Pour appliquer votre configuration Terraform :
- Exécutez
terraform initpour initialiser le répertoire de travail Terraform. - Exécutez
terraform applypour appliquer les modifications définies dans votre configuration.
Vérification
Après avoir exécuté terraform apply, Terraform vous fournira un résumé des ressources créées, modifiées ou supprimées. Cela confirme la création ou la mise à jour de votre Health Monitor.
Étape 7 - Vérifier que les deux membres reçoivent bien le trafic
Réutilisez le script :
Vous devriez voir des réponses alternées provenant des deux membres :
Aller plus loin
Rejoignez notre communauté d'utilisateurs.