Aux débuts de Kubernetes, gérer un seul cluster relevait du travail à plein temps. Aujourd'hui, les platform engineers des grandes organisations ne s'occupent plus d'un cluster unique : ils supervisent des flottes entières comptant des dizaines, voire des centaines de clusters répartis sur plusieurs environnements, régions et unités opérationnelles.
Kubernetes évoluant rapidement, Google Kubernetes Engine (GKE) publie régulièrement de nouvelles versions apportant correctifs de sécurité, gains de performance, évolutions d'API et dépréciations de fonctionnalités. Si ces mises à jour sont indispensables pour conserver une plateforme sécurisée et supportée, elles introduisent aussi un risque opérationnel lorsque la nouvelle version se révèle incompatible avec vos workloads. À l'inverse, les repousser indéfiniment génère une dette de sécurité.
Le GKE Rollout Sequencing répond à ce dilemme en proposant un pipeline de mise à jour déclaratif et automatisé pour vos clusters. Les organisations peuvent ainsi traiter les mises à jour de clusters avec la même rigueur que les déploiements de code applicatif : progression par étapes, application de périodes de stabilisation (soak) et validation approfondie de chaque nouvelle version dans les environnements de test avant son passage en production.
Les défis des mises à jour GKE standard
Même avec un service entièrement managé comme GKE, les mises à jour standard posent plusieurs obstacles opérationnels susceptibles de freiner une équipe DevOps ou Platform :
- Le risque du tout-en-un : sans séquencement, tous les clusters d'une release channel deviennent éligibles à la mise à jour dès qu'une nouvelle version devient celle par défaut. Résultat : les environnements Dev et Prod peuvent être mis à jour dans la même fenêtre s'ils partagent la même release channel, sans laisser le temps de détecter les bugs dans les environnements inférieurs avant qu'ils n'impactent les clients.
- Un contrôle manuel permanent : de nombreuses équipes recourent aux fenêtres de maintenance ou aux exclusions pour bloquer manuellement les mises à jour en production pendant les phases de test. Cela impose une intervention constante, un suivi rigoureux et une charge cognitive élevée pour l'équipe SRE.
- Dépendances et dépréciations d'API : Kubernetes avance vite. Chaque version mineure (par exemple 1.33 vers 1.34) peut déprécier certaines versions d'API. Si une mise à jour cible un cluster exécutant un Helm chart ou un opérateur incompatible, certains services peuvent ne pas démarrer, entraînant une indisponibilité prolongée.
- Dérive de versions : par prudence, les équipes mettent souvent à jour leurs clusters un par un, manuellement. Cette approche provoque une dérive de versions : vos environnements tournent sur des patchs légèrement différents, ce qui empêche de garantir qu'un bug détecté en production puisse être reproduit dans un environnement inférieur.
Pourquoi le Rollout Sequencing change la donne
Le rollout sequencing répond à ces défis en apportant structure, prévisibilité et automatisation au processus de mise à jour. Voici pourquoi il s'impose comme le standard de la gestion GKE en entreprise :
- Cycle de vie d'infrastructure déclaratif : à l'image de Terraform pour vos ressources, le Rollout Sequencing vous permet de définir votre politique de mise à jour as code. Vous établissez la relation amont/aval entre clusters et le control plane Google se charge de l'exécution.
- Périodes de stabilisation garanties : vous pouvez imposer programmatiquement un soak time (jusqu'à 30 jours). Vous pouvez par exemple exiger qu'une version tourne sans erreur pendant 7 jours sur la flotte de Staging avant que la flotte de production ne devienne éligible.
- Promotion conditionnelle : une logique de promotion s'instaure. Une version n'est promue à l'étape suivante que si tous les clusters de l'étape précédente ont été mis à jour avec succès. Cette barrière de sécurité protège vos environnements les plus critiques.
- Synchronisation à l'échelle de la flotte : le mécanisme repose sur le concept de flottes, des regroupements logiques de clusters GKE. Au lieu de configurer 100 clusters individuellement, vous configurez une ou plusieurs séquences de déploiement qui régissent toute la structure organisationnelle.
Stratégies de déploiement : standard ou personnalisée
Google propose deux approches pour bâtir votre pipeline de mise à jour de clusters, selon la structure de votre équipe et votre tolérance au risque.
Stratégie 1 : séquence basée sur les flottes
Cette stratégie repose sur la notion de promotion à l'échelle d'un environnement. Vous organisez vos clusters en flottes selon leur environnement (par exemple dev-fleet, test-fleet, prod-fleet). Tous les clusters de tous les groupes d'une séquence de déploiement doivent être sur la même release channel.
- Fonctionnement : vous définissez une séquence composée de flottes et fixez le soak time entre chaque groupe. Lorsque GKE sélectionne une nouvelle version pour les mises à jour automatiques de la release channel, vos groupes de clusters sont mis à jour dans l'ordre que vous avez défini. Vous pouvez ainsi vérifier que les workloads se comportent comme prévu avec la nouvelle version avant que la mise à jour n'atteigne le groupe suivant de la chaîne.

Une séquence de déploiement basée sur les flottes
- Idéal pour : les organisations dont les regroupements de clusters par environnement sont nets et bien définis.
Stratégie 2 : Rollout Sequencing avec étapes personnalisées (Preview)
Pour les grandes organisations ou celles qui ont des besoins de Canary, les étapes personnalisées offrent une approche plus chirurgicale. Plutôt que de faire basculer une flotte entière d'un seul coup, vous utilisez des sélecteurs de clusters basés sur des labels.
- Fonctionnement : vous pouvez créer une étape Canary au sein de votre flotte de production. Vous pourriez par exemple étiqueter 5 % de vos clusters de production avec
canary: true. La séquence de déploiement commencera par mettre à jour ces clusters. S'ils restent stables, elle poursuit avec les clusters des autres étapes de la même flotte de production.

Une séquence de déploiement avec étapes personnalisées
- Idéal pour : les déploiements mondiaux de grande ampleur, où même la production doit être mise à jour par vagues pour éviter toute interruption de service.
Comment le rollout sequencing s'articule-t-il avec les autres fonctions de mise à jour ?
Le rollout sequencing fait partie d'un ensemble de fonctionnalités qui vous donnent la maîtrise des mises à jour dans le cycle de vie des clusters.
GKE respecte les fenêtres de maintenance et les exclusions de maintenance configurées lorsqu'il met à jour des clusters via le rollout sequencing. GKE ne lance la mise à jour d'un cluster que dans sa fenêtre de maintenance. Une exclusion de maintenance peut être utilisée pour empêcher temporairement la mise à jour d'un cluster. Si GKE ne peut pas mettre à jour un cluster en raison d'une fenêtre ou d'une exclusion de maintenance, cela peut empêcher l'achèvement des mises à jour de clusters dans un groupe.
GKE met également en pause les mises à jour automatiques des clusters d'un groupe d'une séquence de déploiement lorsqu'il détecte l'utilisation de certaines API ou fonctionnalités dépréciées.
Le GKE Rollout Sequencing offre un cadre puissant pour piloter les mises à jour Kubernetes à grande échelle. Grâce aux déploiements par étapes, aux périodes de stabilisation et à un regroupement personnalisable, les organisations réduisent considérablement le risque lié aux mises à jour tout en préservant leur vélocité.
Si vous évaluez déjà le Rollout Sequencing dans le cadre d'un proof of concept ou souhaitez en savoir plus sur cette fonctionnalité, DoiT peut vous accompagner. Notre équipe de plus de 100 experts est spécialisée dans les solutions cloud sur mesure et prête à vous guider pour optimiser votre infrastructure en vue de vos exigences de conformité et de vos besoins futurs.
Discutons ensemble de la stratégie de déploiement la plus pertinente pour votre entreprise, afin de garantir une infrastructure cloud robuste, conforme et taillée pour la réussite. Contactez-nous dès aujourd'hui.