Comment migrer du Load Balancer pour MKS (IOLB) vers le Load Balancer Public Cloud (Octavia)
L'objectif de ce guide est d'aider les utilisateurs du Managed Kubernetes Service (MKS) OVHcloud à migrer d'un Load Balancer pour Managed Kubernetes existant vers un Load Balancer Public Cloud
Objectif
L'objectif de ce guide est d'aider les utilisateurs du Managed Kubernetes Service (MKS) OVHcloud à migrer d'un Load Balancer pour Managed Kubernetes existant vers un Load Balancer Public Cloud.
Le Load Balancer Public Cloud est le Load Balancer par défaut pour les clusters MKS utilisant des versions de Kubernetes >1.30.
Le Load Balancer pour Managed Kubernetes est déprécié pour les clusters MKS utilisant des versions de Kubernetes >1.31.
Ce guide explique les étapes nécessaires pour effectuer cette transition en toute sécurité, en minimisant les interruptions de service. Enfin, il fournit des recommandations sur la gestion DNS, en particulier la réduction du TTL, afin d'optimiser la propagation des changements et d'assurer une migration en douceur.
Comme Load Balancer for Kubernetes et Public Cloud Load Balancer n'utilisent pas la même solution d'allocation d'IP publique, il n'est pas possible de conserver l'IP publique existante de votre Load Balancer for Kubernetes. Changer la classe de Load Balancer de votre Service entraînera la création d'un nouveau Load Balancer et l'allocation d'une nouvelle IP publique (Floating IP).
Comparaison
Voici une comparaison entre Load Balancer for Kubernetes et Public Cloud Load Balancer, mettant en évidence leurs principales différences et capacités. Public Cloud Load Balancer propose plusieurs tailles/flavors ; vous trouverez les spécifications détaillées sur la page Public Cloud Load Balancer.
Annotations
Voici une correspondance entre les annotations existantes prises en charge sur Load Balancer pour Managed Kubernetes et leur équivalent sur Load Balancer Public Cloud.
Si vous utilisez des annotations héritées de Load Balancer pour Managed Kubernetes, vous devez les mettre à jour vers le nouveau format prise en charge par Load Balancer Public Cloud lors de la migration.
Certaines annotations ont été dépréciées et doivent être remplacées pour garantir une compatibilité complète.
Vous trouverez tous les détails sur les pages de documentation officielles :
Migration de votre Load Balancer
À partir des clusters MKS utilisant la version Kubernetes 1.31, toute tentative de mise à niveau du cluster sera bloquée si un service de type Load Balancer reposant sur Load Balancer pour Managed Kubernetes (IOLB) est encore présent dans le cluster.
Action requise : avant la mise à niveau, vous devez transformer vos services en Load Balancer Public Cloud (Octavia) en suivant les étapes décrites dans ce guide.
Si vous tentez une mise à niveau sans avoir migré au préalable, une erreur sera renvoyée, empêchant la mise à niveau.
Il existe deux méthodes pour passer d'un Load Balancer pour Managed Kubernetes à un Load Balancer Public Cloud : vous pouvez soit migrer, soit remplacer votre Load Balancer.
Votre Service Load Balancer existant utilisant Load Balancer for Kubernetes devrait comporter l'annotation suivante :
Chacune des deux méthodes décrites ci-dessous (migration ou remplacement) nécessite un changement DNS pour lequel une propagation DNS de 24 à 48 heures est requise avant d'effectuer la migration.
Par conséquent, veuillez lire l'intégralité de ce guide (et notamment la section « Comment effectuer un changement DNS ? ») avant de procéder aux étapes ci-dessous.
Migration
Migrer d'un Load Balancer for Kubernetes existant vers un Load Balancer Public Cloud consiste à créer un nouveau service Load Balancer utilisant le Load Balancer Public Cloud avec le même sélecteur de labels pour exposer votre application. Pendant une courte période, votre application sera accessible via les deux Load Balancers.
À ce stade, vous pouvez effectuer un changement DNS puis supprimer l'ancien Load Balancer.
Pour migrer d'un Load Balancer for Kubernetes existant vers un Load Balancer Public Cloud, suivez ces étapes :
Étape 1 - Créer un nouveau service Load Balancer
Vous devez créer un nouveau service Load Balancer utilisant le Load Balancer Public Cloud tout en conservant l'ancien actif :
- Assurez-vous que le nouveau service dispose du même labelSelector que l'ancien, afin qu'il expose la même application.
- Vous pouvez définir l'annotation
loadbalancer.ovhcloud.com/class: "octavia"pour un cluster<1.31, ou la supprimer complètement pour un cluster>= 1.31, Octavia étant utilisé par défaut.
labelSelector :
annotations :
Appliquez le nouveau service avec :
Cela créera un nouveau Load Balancer Public Cloud avec une nouvelle IP publique.
Étape 2 - Tester l'accès à l'application
Une fois le nouveau Load Balancer créé, récupérez les IP publiques des deux services :
Vous devriez voir deux services Load Balancer pointant vers la même application avec des IP publiques différentes.
Testez l'accessibilité via les deux IP :
Les deux devraient renvoyer une réponse valide de votre application.
Étape 3 - Effectuer un changement DNS
Pour effectuer un changement DNS, consultez la partie Comment effectuer un changement DNS ? de ce guide.
Étape 4 - Supprimer le service Load Balancer for Kubernetes (aussi appelé IOLB)
Une fois que vous avez confirmé que le trafic passe bien par le nouveau Load Balancer et que l'ancien n'est plus nécessaire, supprimez l'ancien service Load Balancer en le supprimant :
Remplacement
Remplacer un Load Balancer for Kubernetes existant par un Load Balancer Public Cloud consiste à modifier le service existant et à changer la classe de loadbalancer de iolb à octavia. Cela entraînera la réconciliation de la classe de loadbalancer par Kubernetes, en supprimant l'ancien et en créant un nouveau loadbalancer.
Une fois le nouveau Load Balancer livré, vous pouvez effectuer un changement DNS en utilisant la nouvelle IP publique.
Notez que pendant le processus de suppression et de création, votre service ne sera pas accessible.
Vous pouvez réduire cet impact en abaissant la durée du TTL de votre DNS ; consultez la partie Comment effectuer un changement DNS ? de ce guide.
Étape 1 - Modifier votre Service pour changer la classe de Load Balancer en 'octavia'
L'ancien Load Balancer et son adresse IP seront supprimés définitivement, rendant les services inaccessibles. Effectuez immédiatement le changement DNS avec la nouvelle IP fournie.
Appliquez la mise à jour du service avec :
Étape 2 - Effectuer un changement DNS
Pour effectuer un changement DNS, suivez les étapes ci-dessous.
Comment effectuer un changement DNS ?
Vérifier le TTL actuel
Par défaut, les serveurs DNS mettent en cache l'adresse IP d'un domaine pendant une durée définie par le TTL (Time-To-Live).
Un TTL trop long peut ralentir la transition en forçant certains utilisateurs à attendre plusieurs heures avant d'accéder au nouveau Load Balancer. Pour éviter cela, nous recommandons de réduire temporairement le TTL avant de mettre à jour l'IP.
Avant de modifier le TTL, il est important de connaître sa valeur actuelle. Pour cela, exécutez la commande suivante dans un terminal :
Ici, 600 correspond au TTL en secondes (soit environ 10 minutes). Cela signifie que les serveurs DNS conservent cette IP en cache pendant cette durée avant de vérifier une mise à jour.
Réduire le TTL avant la migration
Pour réduire le TTL, suivez ces étapes :
- Accédez à votre console de gestion DNS.
- Trouvez l'enregistrement A (ou CNAME) associé à votre domaine.
- Modifiez le TTL de votre enregistrement A ou CNAME en le réduisant à 300 secondes (5 minutes).
- Attendez 24 à 48 heures pour que ce nouveau TTL se propage.
Pourquoi attendre ? Parce que les serveurs DNS doivent d'abord vider leur cache avant d'adopter le nouveau TTL.
Mettre à jour l'IP du Load Balancer
Une fois la réduction du TTL propagée :
- Remplacez l'ancienne IP par celle du nouveau Load Balancer dans votre enregistrement DNS.
- Grâce à la faible valeur du TTL, les utilisateurs verront rapidement la mise à jour.
- Vérifiez que le changement est effectif en utilisant la même commande
digqu'auparavant. Vous devriez voir la nouvelle adresse IP affichée dans le résultat de la commande.
Restaurer le TTL après la migration
Une fois la transition validée et l'ancien Load Balancer déconnecté, reconfigurez le TTL avec une valeur plus élevée.
Ressources complémentaires
- Exposer des applications via des services de type Load Balancer
- Utiliser Octavia Ingress Controller
- Concepts du Load Balancer OVHcloud
- Comment monitorer votre Load Balancer Public Cloud avec Prometheus
Aller plus loin
Consultez le dépôt d'exemples Github.
Consultez notre canal Discord dédié : https://discord.gg/ovhcloud. Posez vos questions, partagez vos retours et échangez directement avec l'équipe qui développe nos services Containers et Orchestration.
Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.
Échangez avec notre communauté d'utilisateurs.