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
Accès à l'espace client OVHcloud
- Lien direct : Projets Public Cloud
- Pour accéder à vos services :
Public Cloud> Sélectionnez votre projet
É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.

É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 :
É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.

É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.





