« Small is beautiful », comme l'a dit un jour l’économiste britannique E. F. Schumacher. Kubernetes, une plateforme d'orchestration de conteneurs puissante, mais tentaculaire, pourrait bénéficier d'une approche plus dépouillée. Tout le monde n'a pas besoin de l'ensemble des outils et des fonctionnalités d’une distribution K8’s du type Red Hat OpenShift ou Mirantis Kubernetes Engine.

Les administrateurs, les opérateurs et les développeurs n’ont pas toujours le temps ou le savoir-faire technique pour personnaliser Kubernetes pour un usage minimaliste, mais il y a de fortes chances que quelqu'un d'autre l'ait fait. Cet article examine trois distributions qui ramènent K8’S à l'essentiel.

Minikube, un cluster de développement local

Minikube, un reconditionnement communautaire de Kubernetes, fournit une instance locale de Kubernetes suffisamment petite pour être installée sur l'ordinateur portable d'un développeur. La configuration minimale requise est de 2 Go de mémoire libre, 2 processeurs, 20 Go de stockage et un gestionnaire de conteneurs ou de machines virtuelles (VM) tel que Docker, Hyper-V ou Parallels. Notez que pour les utilisateurs Mac, il n'y a pas encore de version M1, seulement une mouture x86-64. 

Il est possible de configurer et déployer un simple cluster Minikube en deux étapes seulement : installation du runtime Minikube et taper minikube start sur la ligne de commande. Tout ce qui suit est du Kubernetes standard. Et pour interagir avec le cluster de containers, il suffit de passer par kubectl. 

Cas d'utilisation de Minikube

De nombreux développeurs utilisent Minikube comme cluster de développement personnel ou pour remplacer Docker Desktop. 

Minikube comprend également le tableau de bord Kubernetes basé sur le Web, pour surveiller un cluster d’un seul coup d’œil. Des exemples d'applications peuvent être lancés à l'aide de quelques commandes, et il est même possible d’effectuer un déploiement avec équilibrage de charge. 

Cette distribution est souvent utilisée pour remplacer Docker Desktop. Notez que pour ce faire, il faut a) utiliser le runtime de conteneur docker et b) exécuter Minikube lui-même avec un pilote VM au lieu d'un runtime de conteneur.

k3s, le Kubernetes light de la CNCF

k3s, un projet de la Cloud Native Computing Foundation, est un « Kubernetes light ». Il est le mieux adapté à l'exécution de K8’s dans des environnements limités en ressources. Même un Raspberry Pi peut être utilisé comme périphérique k3s, car ce dernier existe en versions ARM64 et ARMv7. Notez qu'il ne fonctionne pas sur Microsoft Windows ou MacOS, mais uniquement sur les systèmes Linux modernes tels que Red Hat Enterprise Linux ou Raspberry Pi OS. 

k3s ne nécessite pas plus de 512 Mo à 1 Go de RAM, 1 CPU et au moins 4 Go d'espace de stockage pour sa base de données en cluster. Par défaut, k3s utilise SQLite pour son SGBD interne, mais il est possible de l’échanger contre etcd, la valeur par défaut conventionnelle de Kubernetes, ou contre MySQL ou Postgres. 

Cas d'utilisation de k3s

Cette minuscule distribution Kubernetes est idéale pour l'informatique edge, les scénarios embarqués et le développement.

Le runtime de base de k3s est un binaire unique, avec très peu de développement nécessaire pour être opérationnel avec un ensemble raisonnable de valeurs par défaut. Le processus de configuration de base ne nécessite pas plus qu'une seule commande shell pour télécharger et installer k3s en tant que service. L’exécution de k3s tel quel et sur place, sans installation, est également envisageable.

L'approche compacte et sans fioritures de k3s signifie qu’il est nécessaire d’ajouter de nombreuses fonctionnalités à la main ou par le biais de lignes de commande. La documentation donne des indications sur la façon d'ajouter le tableau de bord Kubernetes, de remplacer Docker par le conteneur par défaut, d'exécuter k3s en mode "air-gapped" et d'effectuer de nombreuses autres modifications utiles.

k0s, l’alternative allégée de Mirantis

k0s, de Mirantis, est également distribué sous forme de binaire unique pour un déploiement aisé. Ses besoins en ressources sont minimes - 1 CPU et 1 Go de RAM pour un seul nœud - et la distribution peut fonctionner en tant que nœud unique, cluster, configuration air-gapped ou dans Docker. 

Pour démarrer rapidement, il est possible de récupérer le binaire k0s et le configurer en tant que service. Un outil d'installation dédié, k0sctl, est proposé pour configurer ou mettre à niveau plusieurs nœuds dans un cluster. L’exécution de k0s sous Microsoft Windows est une option, mais à titre expérimental uniquement. Une fonctionnalité étonnamment puissante, incluse par défaut, est la mise à jour automatique. Cette dernière repose sur un plan de mise à jour du cluster selon un calendrier, avec des sécurités en place pour éviter une mise à niveau défectueuse.

Cas d'utilisation de k0s

Les cas d'utilisation de k0s incluent le développement pour tests et les déploiements limitées qui seront étendus ultérieurement. 

La documentation de k0s fournit des recettes pour diverses personnalisations. Pour faire fonctionner un cluster en mode air-gapped, par exemple, il existe des instructions pour configurer, faire fonctionner et mettre à jour un cluster avec un accès limité à Internet. Une autre astuce utile dans la documentation explique comment configurer le plan de contrôle pour la haute disponibilité. Et si certains composants ne sont pas inclus par défaut, comme l'équilibrage de charge et les contrôleurs Ingress, la documentation explique comment ajouter ces composants manuellement.