Trafik 3.0 GA a atterri: voici comment migrer (2024)

Trafik 3.0 GA a atterri: voici comment migrer (1)

Cette année marquera le 9e anniversaire de Trafik.En 2015, alors que j'écrivais les premières lignes de code pour un proxy inversé natif du cloud, je ne pouvais pas imaginer à quel point cela irait.D'un projet parallèle, Trafik est devenu l'une des passerelles modernes les plus déployées sur Terre, avec plus de 3 milliards de téléchargements et plus de 750 contributeurs.Il est classé dans le top 15 sur Dockerhub et compte 47 000 stars GitHub.Fou.

Trafik 1.0 a été publié en 2016. Trois ans plus tard, Trafik 2.0 est né.Aujourd'hui, après 5 ans de développement, l'attente est enfin terminée!Nous sommes fiers d'annoncer que Trafik 3.0 est généralement disponible 🎉

Cette version majeure est unÉnorme pas en avant dans le monde indigène des nuages, ajoutant le support pour les dernières technologies comme WASM, OpenTelemetry, Kubernetes Gateway API et Spiffe.

Après de nombreuses années d'efforts, le Changelog est assez sauvage, avec plus de 200 demandes de traction fusionnées, chacune venant avec de nouvelles fonctionnalités.La liste des nouvelles possibilités est si importante que nous voulons fournir une série de articles de blog, chaque plongée profonde dans une fonctionnalité.

L'article d'aujourd'hui se concentrera sur le début, l'éléphant dans la pièce 🥁🥁🥁: la migration.

Migration sous contrôle

Une nouvelle version majeure est toujours quelque chose d'attendu avec impatience: un nouveau design, de nouvelles fonctionnalités, une meilleure expérience utilisateur… mais la contrepartie est généralement l'aspect migratoire.Une version majeure signifie souvent la rupture des changements, mais cela ne devrait pas impliquer une expérience de migration douloureuse, et avec Trafik V3, ce n'est pas le cas.

Avec Trafik V3, nous introduisons un processus de transition rationalisé à partir de v2.Pour rappel, Trafik a 2 types de configurations:

  • leconfiguration statiquequi est chargé lorsque Trafik démarre et gère les options globales
  • leconfiguration dynamiquePeut être mis à jour pendant que Trafik est en cours d'exécution et contient toutes les informations de routage

Des modifications de rupture minimales ont été apportées sur des options spécifiques sur la configuration statique, et nous assurons une compatibilité vers l'arrière avec la syntaxe V2 sur la configuration dynamique.Cela offrira un chemin progressif pour l'adoption de la syntaxe V3, permettant aux utilisateurs de migrer progressivement leurs ressources entrant de Kubernetes, des étiquettes Docker, etc. vers le nouveau format.

Plongeons profondément dans le chemin de migration avec un cas d'utilisation typique: vous devez migrer 100 instances Trafik de la v2.11 à la v3.0 dans Kubernetes.

Étape 1: Préparer et tester

La première chose à faire est d'identifier comment votre configuration statique est affectée par les modifications apportées dans la V3.Les changements de rupture sont minimes et ciblent des options très spécifiques, dans 90% des cas d'utilisation, ce processus ne devrait prendre que quelques minutes.À titre d'exemple, Docker et Swarm sont maintenant 2 fournisseurs, HTTP / 3 n'est plus une option expérimentale, Rancher V1 a été abandonné comme le projetn'est plus activement maintenu, etc. Veuillez vous référer auSection de configuration statique de la documentation de migration, aussi bien queSection des opérations, pour obtenir la liste complète et préparer votre nouvelle configuration statique V3.

Ajoutez l'extrait suivant à votre configuration statique, cela utilisera par défaut leSyntaxe V2Pour vos règles de routage:

# Static ConfigurationCore: DefaulTrulesYntax: V2

Lorsque vous êtes prêt à le tester, démarrez Trafik V3 avec cette nouvelle configuration.Si vous n'obtenez aucun journal d'erreur, vous êtes prêt à partir!Sinon, aucun problème, les options de migration restantes sont mises en évidence dans les journaux, vous pouvez simplement les appliquer.

Une fois que vos instances de test TRAFIK démarrent et se sont acheminées vers vos applications, vous pouvez passer à l'étape suivante.

Étape 2: mise à jour de roulement

Maintenant que vous avez testé votre configuration statique mise à jour, il est temps de migrer progressivement vos instances de production vers Trafik V3.Utilisez les Kubernetesmise à jour de roulementMécanisme pour remplacer progressivement les pods actuels par de nouveaux.

⚠️ Avant de déclencher tout changement sur votre production, assurez-vous que vous avezUne solution de surveillance en temps réel qui fonctionneSur votre trafic entrant qui vous permettra de détecter instantanément tout problème.Trafik fournit un soutien à de nombreuses observabilitésolutions.

Bien que la mise à jour de roulement soit en cours, surveillez constamment votre trafic entrant à la recherche d'erreurs inattendues (et inhabituelles) et soyez prêt à revenir à un état de travail.Ensuite, tirez parti des journaux de débogage et d'accès fourni par Trafik pour comprendre et résoudre le problème avant de mettre à nouveau la mise à niveau.Au cas où vous n'êtes pas sûr, sautez sur le forum communautaire.

Une fois que chaque pod est mis à jour, félicitations, vous êtes maintenant sur Trafik V3!

Vous pouvez passer à la dernière étape.

Étape 3: mise à jour des entrages progressifs

Maintenant que vous exécutez Trafik V3, commencez à migrer vos ressources entrant vers le nouveau format.

📍 Gardez à l'esprit que cette étape peut être effectuée plus tard, car Trafik V3 est compatible avec le format V2 pour la configuration dynamique.Mais bien sûr, vous pouvez commencer à utiliser de nouvelles fonctionnalités immédiatement dans de nouvelles entrées et migrer les entrées plus anciennes plus tard.

La configuration dynamique en V3 a subi quelques modifications.Par exemple, les correspondances de règles du routeur ont une syntaxe mise à jour, le groupe API INGRESS Kubernetes a été modifié et l'option TCP LoadBalancer TerminalDelay a été supprimée.La liste complète peut être trouvée dans leSection de configuration dynamique de la documentation de migration.

Progressivement,Communiquez chaque routeur à la syntaxe V3, testez et mettez à jour chaque ressource entravée et vérifiez que le trafic d'entrée n'est pas affecté.Une fois qu'une migration de ressources INGRESS V3 est validée, vous pouvez supprimer la ressource INGRESS V2 et déployer la version V3.Répétez ces étapes pour chaque ressource entrante.

À la fin du processus, vous pouvez retirer en toute sécurité l'extrait ajouté à l'étape 1:

# Static ConfigurationCore: DefaulTrulesYntax: V2

Et voilà!

Vous êtes maintenant entièrement migré vers Trafik V3 🎉!Et vous l'avez fait progressivement, en gardant le contrôle pendant tout le processus, avec la possibilité de faire reculer tout changement à tout moment.

Cet exemple avec Kubernetes peut être transposé à n'importe quel orchestrateur ou environnement, le processus reste le même.

Dans les semaines à venir, nous allons continuer cette série et publier des articles Deep Dive sur WasM Support (etPectoralFirewall d'applications Webbrancher), OpenTelemetry, Spiffe / TailScale / HTTP / 3 et Kubernetes Gateway API.

En fin de compte, j'aimerais exprimer une immense gratitude à tous les contributeurs.Votre soutien est incroyablement précieux.

Pour en savoir plus sur V3,registrePour la rencontre en ligne de Trafik V3 qui aura lieu le 15 mai.

Rendez-vous sur Github!

Liens utiles

  • Trafik 3.0 surGithub& surHub docker
  • VoyageurDocumentation,Site web, &Github
  • Notre forum communautaire

Trafik 3.0 GA a atterri: voici comment migrer (2)

Trafik 3.0 GA a atterri: voici comment migrer (2024)

References

Top Articles
Latest Posts
Article information

Author: Neely Ledner

Last Updated:

Views: 5589

Rating: 4.1 / 5 (62 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Neely Ledner

Birthday: 1998-06-09

Address: 443 Barrows Terrace, New Jodyberg, CO 57462-5329

Phone: +2433516856029

Job: Central Legal Facilitator

Hobby: Backpacking, Jogging, Magic, Driving, Macrame, Embroidery, Foraging

Introduction: My name is Neely Ledner, I am a bright, determined, beautiful, adventurous, adventurous, spotless, calm person who loves writing and wants to share my knowledge and understanding with you.