Kubernetes est un outil d’orchestration de conteneurs, il est devenu si populaire qu’il est devenu le standard de facto dans l’industrie des conteneurs.
Mais saviez-vous que derrière Kubernetes ne se cache pas toujours Docker et qu’il n’existe pas un seul produit Kubernetes, mais des centaines de distributions différentes? Kubernetes sur son propre site en référence pas moins de 50. Mais alors Kubernetes, c’est quoi? On fait le point avec vous.
Kubernetes
Là où Docker est limité à une seule machine/ votre laptop ou un serveur, Kubernetes est une plateforme qui va gérer un ensemble de machines physiques (appelé cluster) pour y orchestrer des containers. Kubernetes va donc se charger d’exécuter des containers, de les déplacer, de les redémarrer en cas de crash, et tout simplement les tuer quand ils ne sont plus nécessaires.
Kubernetes à été initialement développé par Google et avait déjà acquis une grande expérience dans la gestion des conteneurs depuis plusieurs années. En 2014, Google avait déclaré lancer plus de 2 milliards de container par semaine. Kubernetes a été lancé en 2015 et immédiatement livré à la communauté open-source en créant la fondation Cloud Native Computing Foundation (CNCF).
Kubernetes propose une API standardisée pour interagir avec le cluster. Il existe ensuite plusieurs clients permettant d’interagir avec notre cluster Kubernetes, le plus connue étant l’outil en ligne de commande kubectl
Un standard, plusieurs implémentations et outils
Pour exécuter les conteneurs, Kubernetes va utiliser un standard appelé Container Runtime Interface (CRI). L’implémentation containerd de Docker est la plus connue et probablement la plus utilisée on-premise. Sur le cloud, il est très probable que des fournisseurs comme Google ou Amazon utilise une solution maison compatible avec la CRI qui répond davantage à leurs besoins.
Pour gérer les noeuds du cluster, les containers, leurs emplacements, qui communique avec qui, la plupart des distributions Kubernetes utilise etcd, mais d’autres solutions existent comme Redis,MySQL, zookeeper, etc. Idem pour la gestion du réseau au sein du cluster, il existe là aussi plusieurs alternatives.
Les distributions Kubernetes
Installer Kubernetes, c’est donc faire un choix parmi tout un ensemble d’outils, les installer et les configurer d’une certaine manière pour avoir sa plateforme Kubernetes, ce qui peut être très compliqué. C’est pourquoi il est plus simple de choisir une distribution Kubernetes qui a déjà fait ces choix pour vous. Le principe est très similaire aux distributions Linux (Ubuntu, Debian, Suse, Redhat, Gentoo, etc)
Parmis les distributions on-premise les plus connues, on retrouve :
- Minikube, pour installer du dev ;
- Docker Desktop, qui propose l’installation en 1 click sur Windows ;
- Rancher avec RKE et k3s ;
- microk8s, by ubuntu ;
- Suse CaaS Platform ;
- Redhat OpenShift.
Pour le cloud, on retrouve les grands fournisseurs du secteur avec :
- Amazon Elastic Kubernetes Service (Amazon EKS) ;
- Google Kubernetes Engine (GKE) ;
- Service Azure Kubernetes (AKS) pour Microsoft ;
- Openshift pour OVHCloud.
Ces derniers gèrent toute la partie technique et le cluster pour vous, parfois au détriment de votre indépendance vis à vis du fournisseur, les distributions sur le cloud n’étant pas compatibles/connectées entre elles.
Pour une gestion plus avancée, multi-cloud,sur une infrastructure existante, ou offline, les entreprises préféreront les solutions open-source on-premise
Pour conclure, le choix vous appartient.
Ping : Rancher, une interface web pour Kubernetes, mais pas que | w3blog