Kubernetes (K8s) est un système open-source permettant d'automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées.
Les conteneurs qui composent une application sont regroupés dans des unités logiques pour en faciliter la gestion et la découverte. Kubernetes s’appuie sur 15 années d’expérience dans la gestion de charges de travail de production (workloads) chez Google, associé aux meilleures idées et pratiques de la communauté.
Je me suis interessé a Kubernetes pour mon travail, et j'ai potassé pas mal de vidéos et de blog pour comprendre comment fonctionnait Kubernetes et comment le déployer, j'éspère que mon retour d'experience vous permettera de gagner du temps pour la mise en place d'un cluster.
Plusieurs méthodes existe avec leur niveau de simplicité/difficulté:
-
Dans le cloud via les fournisseurs tels que Google, Amazon, Azure, Ovh ...
- Les avantages:
- Très simple a déployer via les tableaux de bords / API conçu par les fournisseurs
- Pas de gestion du systeme d'exploitation hébergeant le cluster Kubernetes.
- La mise a jour de kubernetes est simplifié.
- Les inconvénients:
- Le prix peut vite s'envoler en fonction du nombre de ressources solicités
- Vous êtes enfermé dans une version de kubernetes packagé par le fournisseur.
- Les avantages:
-
Mais on peut aussi l'installer On Premise sur bare metal ou dans des vms.
- Les avantages:
- Contrairement aux solutions dans le cloud vous n'avez pas de frais a part l'éléctricité dépensé par votre serveur.
- vous n'êtes pas dépendant des outils imposés par un editeur.
- Les inconvénients auxquels je propose des solutions par la suite:
- Complexe a deployer.
- la mise a jour d'un cluster est complexe.
- gestion du systeme d'exploitation Hôte du cluster Kubernetes.
- Les avantages:
Sur ce blog je vous propose des solutions vous permettant de deployer un cluster kubernetes tout en minimisant les inconvénients cités ci-dessus.
- Microk8s:
- les + léger, installation en presque 3 commandes, plugin clé en main vous permettant d'enrichir votre cluster en une seule commande.
- les - suffit pour une petite production mais sera limité dans un cadre professionnel avec plusieurs environements de prod, preprod, qualif.
- Rancher:
- les + Permet de gérer plusieurs cluster Kubernetes, a l'aide d'un tableau de bord, et de déployer des cluster RKE2 sur n'importe quel systeme d'exploitation linux. Parfait pour les mise en productions. Peut gérer jusqu'a 1000 clusters.
- les - demande plus de ressources et de connaissances que pour Microk8s.
- Talos Linux:
- les + Une distribution linux dite immuable, permettant de creer un cluster de noeuds pour ensuite déployer kubernetes dessus. Très légé et hyper sécurisé.
- les - ne prends en charge que sa version de kubernetes on ne peut pas déployer RKE2 dessus par exemple.