En ce mois de mai, Kubernetes célèbre sa huitième année d’existence. Huit ans qui auront suffi à faire de cette solution open source le socle technique incontournable pour le déploiement et la gestion d’applications conteneurisées et de clusters de serveurs. Kubernetes, baptisé K8s par ses aficionados, a définitivement gagné la guerre des orchestrateurs face à Docker Swarm ou Mesos Marathon.
Quand il est apparu la première fois à la mi-2014, l’outil conçu par Google bénéficiait d’une quinzaine d’années de savoir-faire du géant du numérique dans la gestion des containers logiciels. Borg, l’ancien nom de Kubernetes, servait déjà à administrer des services massivement distribués comme Gmail ou Google Maps.
Aujourd’hui, en 2022, Kubernetes est pour ainsi dire devenu un standard de fait. Dans la dernière édition de son rapport « State of Kubernetes », VMware confirme que la plateforme s’est imposée comme la couche d’orchestration de référence pour l’infrastructure des clouds privés, publics et hybrides. « Son utilisation n’est plus réservée aux pionniers, et s’est progressivement généralisée », estime Michael Cote, staff technologist chez VMware.
VMware en tient pour preuve le nombre de clusters gérés. En 2020, 30 % des organisations interrogées par VMware avançaient cinq clusters ou moins, et seulement 15 % en avaient plus de 50. Deux ans plus tard, les proportions se sont inversées. Seules 12 % des entreprises gèrent cinq clusters ou moins, et 29 % en possèdent plus de 50.
Des infrastructures scalables, évolutives et résilientes
Son succès, Kubernetes le doit à sa richesse fonctionnelle. Solution clé en main, elle embarque nativement l’éventail des fonctionnalités que l’on est en droit d’attendre d’un gestionnaire de clusters : load balancing, auto scaling, gestion des autorisations, etc. L’utilisation de Kubernetes s’étend même au-delà du cloud. Elle est utilisée dans une version modifiée pour gérer l’IoT (internet des objets). Ce qui n’était pas prévu à la base.
Site reliability engineer chez Padok, Arthur Busser met de son côté en avant l’efficacité du mode de fonctionnement de Kubernetes. « Une API déclarative permet à l’utilisateur de déclarer l’état voulu de son infrastructure. Il souhaite, par exemple, que trois instances de son service tournent et soient exposées sur internet via une URL. Des contrôleurs vont ensuite comparer cet état voulu et l’état réel et prendre les actions nécessaires pour rapprocher les deux états. »
Un modèle qui permet, selon lui, de construire des infrastructures scalables, évolutives et résilientes. « Et si Kubernetes ne permet pas de tout faire, il peut, grâce à son approche modulaire, s’enrichir de services tiers. Pour ajouter des fonctionnalités, il suffit à l’utilisateur de piocher dans le catalogue d’extensions comme Prometheus pour le monitoring ou cert-manager pour la gestion des certificats SSL. »
S’inscrivant dans les pratiques de la méthode GitOps, la suite open source Argo fournit également un ensemble d’outils natifs à Kubernetes pour la gestion de workflows en containers. Parmi eux, Argo CD contrôle le déploiement d’une application ainsi que son cycle de vie.
Maîtriser la complexité
Outil extrêmement puissant et riche, Kubernetes n’en reste pas moins complexe. Une complexité qui peut freiner son adoption. 51 % des entreprises interrogées dans l’étude de VMware considèrent qu’elles souffrent d’un manque d’expérience et d’expertise en interne et 34 % disent avoir du mal à suivre les évolutions rapides de Kubernetes et du cloud native en général.
« Le recours à Kubernetes implique une nécessaire montée en compétences pour parvenir à des déploiements automatisés, à mesurer continuellement les niveaux de services », confirme Arthur Busser. « Cela dit, le faire sans Kubernetes serait autrement plus compliqué. »
Pour l’expert, l’enjeu majeur pour une organisation est d’arriver à gérer la complexité qu’elle développe. « Le risque est grand d’assister à une fuite en avant en ajoutant toujours plus de composants. En se prêtant à cette surenchère de fonctionnalités, une entreprise peut peiner à maîtriser et à maintenir l’ensemble. C’est le piège. C’est facile au début, la complexité vient après. »
Cette perte de la maîtrise des environnements Kubernetes peut aussi créer des failles de sécurité. « Particulièrement dynamique, la communauté open source propose immédiatement un patch à la moindre vulnérabilité détectée », observe Arthur Busser. « A l’entreprise derrière d’effectuer le travail de patching. Il suffit d’un composant non mis à jour pour exposer l’ensemble à des risques. »
Pour s’affranchir de la complexité de Kubernetes, des providers comme AWS, Google Cloud, Microsoft Azure, OVHcloud ou Scaleway en proposent des versions managées. En recourant à ce type d’offre de « Kubernetes-as-a-Service », l’entreprise n’a plus à se préoccuper de la configuration, de l’exploitation et de la maintenance de l’orchestrateur.
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/all.js#appId=243265768935&xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));