Présentation
Kubernetes (souvent nommé k8s) est une plateforme complète pour la mise en place du déploiement et automatisation de conteneurs sur des milliers de machines.
Une fois installé sur chaque machine, on s’abstrait du matériel pour entrer dans un environnement complet pour déployer, automatiser et équilibrer les charges pour différents services délivrés par des conteneurs.
La plateforme est tellement souple qu’elle permet de choisir son moteur de conteneurs, la façon de surveiller le tout, quel load balancer on souhaite, comment gérer le chiffrement (Let’s Encrypt, etc.) et ainsi de suite.
Ce projet a été créé par Google puis donné, en Open Source, à la CNCF (Cloud Native Computing Foundation).
Pour en savoir plus, il y a une page concernant Kubernetes sur le site officiel de la CNCF .
Variantes
Kubernetes est délivré sous plusieurs formes. Chacun propose une distribution de Kubernetes avec des composants différents.
Parmi les distributions notables on a :
- Minikube , pour une utilisation locale et la phase de développement de vos outils ou services sous Kubernetes,
- Talos Linux , une distribution Linux axée sur la sécurité et le déploiement d’un cluster Kubernetes. Utilise une commande talosctl très similaire à kubectl,
- k0s , une distribution délivrée en un binaire unique ! S’installe donc facilement sur n’importe quelle machine physique ou virtuelle, dans le cloud ou sur une machine physique,
- k3s , une version allégée qui tourne, notamment, sur les célèbres RPI ,
- kind , une version utilisant notre Docker local et permettant de « simuler » des clusters Kubernetes avec 1 à plusieurs nœuds. Idéal pour développer des concepts et travailler des idées Kubernetes sans avoir de réel cluster k8s.
Outils
Étant donné que Kubernets (k8s) est une plateforme très utilisée et ayant de multiples variantes, elle fait couler de l’encre sur Internet. Et la communauté génère de multiples outils pour simplifier certaines tâches.
Quelques outils :
- k3sup permet de déployer un cluster complet de Kubernetes en quelques secondes en utilisant la distribution k3s,
- kube-linter est un outil d’analyse statique pour YAML et charts Helm qui pousse à l’utilisation des bonnes pratiques,
- kubeconform valide vos fichiers YAML… ou pas ! Vous allez devenir chèvre, mais le résultat sera appréciable,
- kubectx permet de changer de contexte kubectl en une commande interactive. Très facile d’utilisation et très très utile !,
- skaffold est un utilitaire qui va redéployer vos fichiers YAML à chaque changement de ces derniers.