Qu’est-ce que Kubernetes ?
Introduction à Kubernetes
Kubernetes est le système d'orchestration de conteneurs le plus répandu sur le marché. Il est autant utilisé par des géants tels que Google, AWS, Azure, et AliCloud, que par des entreprises grands comptes ou des PME.
En tant qu'outil open source, Kubernetes peut être implanté aussi bien dans les data centers privés que dans le cloud. Il se distingue par sa quantité phénoménale de plugins et sa manière de le déployer et de l’instancier. Depuis quelques années, Kubernetes est devenu un standard du marché.

Combien coûte Kubernetes ?
La rentabilité de Kubernetes s'articule autour de trois aspects :
- Les coûts initiaux : acquisition de licences pour les outils et mise en place d’infrastructures sous-jacente (serveurs, réseau, stockage…) mais également la formation des équipes en interne pour monter en compétences sur la gestion et la maintenance des environnements.
- Les investissements continu : le support, l’outil, le licensing et l’optimisation des performances.
- Les avantages à long terme : réduction de coûts d’infrastructures que Kube peut engendrer, accélération du développement et de la production, amélioration de la disponibilité et des performances des applications.
Kubernetes Deployment : est-ce complexe ?
En tant que système d'orchestration de conteneurs, Kubernetes a l’avantage de proposer une configuration simplifiée qui permet plusieurs bénéfices :
- Résilience et scalabilité by Design
- Automatisé de manière native
- Portabilité et flexibilité
- Sécurité simple à gérer
A contrario, Kubernetes peut s’avérer complexe en terme de déploiement à différents niveaux :
- Complexité de déploiement (compatibilité et diversité des plugins…)
- Complexité dans la gestion opérationnelle
- Absence de rétrocompatibilité (les montées de version n’assure pas la compatibilité avec une version précédente)
- Choix d’architecture pour déployer son cluster Kubernetes (exemple : pour un cluster Kube multi datacenter, il faut privilégier le déploiement dans un seul datacenter avec des load balancers pour répartir les charges entre les différents clusters existants).
Le blue-green deployment est une stratégie de déploiement utilisée pour réduire les interruptions lors de la mise à jour d'applications en production de Kubernetes. Cette méthode est très appréciée dans les environnements Kubernetes en raison de sa capacité à orchestrer et gérer des conteneurs à grande échelle.
Une large communauté sur Kubernetes
Il y a une très forte communauté de développeurs et d'utilisateurs sur Kubernetes qui contribuent régulièrement à l'amélioration continue de ses fonctionnalités. Cette communauté fournit de la documentation complète, des supports et des outils open source pour aider les utilisateurs dans l'adoption et le déploiement de Kubernetes. Elle est engagée et a pour objectif que Kubernetes reste à la pointe du progrès en matière d'orchestration de conteneurs.
Autour du système d'orchestration de conteneurs gravite un vaste écosystème d'outils qui permettent d’étendre les capacités de Kubernetes en ajoutant des fonctionnalités supplémentaires comme la surveillance, la journalisation, la mise en réseau, la gestion des configurations, etc.
Le support éditeur des différents CSP qui fournissent des solutions clé en main permet aux entreprises d'être agiles dans le déploiement et dans la gestion des infrastructures.
Dépendance à des infrastructures et outils tiers
En tant qu’orchestrateur de conteneurs, Kubernetes s'appuie sur une infrastructure déjà existante qui est sous-jacente (serveurs, réseau, stockage…) et chacun de ces composants doit être analysé pour éviter un incident. Il faut savoir que l’utilisation de Kubernetes implique d’avoir une approche globale et pas uniquement centrée sur Kubernetes.
La dépendance à des outils tiers pour la surveillance, la journalisation, la gestion des configurations… doit également être anticipée. Cela peut augmenter la complexité et les coûts du déploiement.

Kubernetes Deployment : quels prérequis pour se lancer ?
Eviter les applications monolithiques
Le déploiement de Kubernetes peut être complexe si vous avez une ou plusieurs applications qui sont des monolithes importants (une application qui regroupe des applications différentes, avec souvent beaucoup d’équipes différentes qui développent sur le même dépôt).
L’alternative serait alors de travailler en amont pour découper le monolithe. Par ailleurs, vous pouvez démarrer et faire des expérimentations au démarrage sur des mini Kubernetes que vous pouvez installer sur un seul ordinateur ou un seul serveur. Cela permet de faire un POC moins coûteux d’un point de vue technique et fonctionnel.
Avoir un sponsorship
Il est important d’avoir un sponsorship fort pour le déploiement de Kubernetes. Il faut s’assurer que le top management soit aligné avec cette décision et soutienne les équipes techniques car la migration vers Kubernetes est un projet très structurant qui apporte beaucoup de changements à la fois organisationnels et structurels.
Assurer la montée en compétences des équipes sur Kubernetes
L'apprentissage sur Kubernetes est un processus essentiel, qui peut s’avérer long et ardu car il s’agit d’un vaste sujet dont il faut maîtriser toutes les couches (stockage, réseau, sécurité, etc). La maîtrise de Kubernetes nécessite d'avoir un spectre large en termes de technicité, ce qui implique des formations approfondies et une expérience pratique. Il existe des formations et des certifications (CKx) qui sont très intéressantes et pratiques.
Pour maîtriser la complexité de Kubernetes, il est important d'avoir une équipe dédiée en charge de l’environnement Kubernetes. C’est un moyen de pouvoir appréhender les différents types de déploiement sans que cela n’impacte la production et les clients finaux.
Avoir l’expérience de la gestion de conteneurs
Globalement, le déploiement de Kubernetes s’adresse à des organisations, grandes ou petites, qui ont l'habitude de gérer des conteneurs. Kubernetes fonctionne partout dès lors que l’on a la maîtrise de son propre code. Il y a beaucoup d'éditeurs qui ne savent pas découper leurs applications monolithiques et qui vont restreindre le champs des applications éligibles à à la migration dans Kubernetes.
Les CSP fournissent des services managés qui évitent de rajouter de la complexité. Tout se fait dans la console et cela permet de gagner en agilité sans forcément avoir de connaissances pointues. Tout est déjà pré-packagé.
Kubernetes Deployment : quelle méthodologie ?

Le déploiement de l’orchestrateur de conteneurs Kubernetes implique d’avoir une approche globale dans la méthodologie :
- Analyser le niveau technique des équipes et réaliser une analyse de risque en matière d’adhérence au changement. Il est important d’avoir un sponsor fort qui puisse être moteur et force de proposition dans le projet pour accompagner le changement, aider les équipes et avoir du budget.
- Applications éligibles : lister les applications éligibles à une migration vers Kubernetes en fonction de multiples critères (criticité, monolithiques / découplées, compliance de la donnée…). Après, il faut analyser chaque application afin de voir si elle peut être découplée ou non.
- Observabilité nécessaire : identifier les outils qui permettront de faire le monitoring des applications. L’observabilité va permettre de savoir si une application est fonctionnelle et prête à être migrée dans Kubernetes (via une réponse en API).
- Mode d'hébergement : choix du cloud (simple à utiliser mais sans toutes les fonctionnalités) ou un déploiement de cluster Kubernetes auto-hébergé contenant l'ensemble des fonctionnalités dont on a besoin, mais qui peut s’avérer complexe à gérer (à arbitrer en fonction du niveau technique de son équipe). Si l’organisation n’a pas de spécialiste Kubernetes, il est plus opportun de s’orienter vers un package automatisé et prêt à être déployé proposé par un CSP.
- Déploiement du cluster : il est important de définir un plan de déploiement visant à documenter et cadrer le déploiement des applications dans le cluster en fonction du dimensionnement de l’infrastructure.
Pour aller plus loin
Article - Rachat par Broadcom : quelles alternatives à VMware pour les DSI ?
Article - Les outils et services AWS pour optimiser le DevOps