Minikube vous permet d’installer en local un cluster Kubernetes (k8s) composé d’un unique nœud. Ainsi, pas besoin d’avoir plusieurs machines pour se lancer dans l’éco-système k8s.

Ce n’est pas un article « prod-ready », il s’agit là d’avoir une machine à disposition avec un cluster Kubernetes light pour étudier la solution et y effectuer des essais simples.

De plus, je ne vais pas non plus traiter l’environnement et le contexte de Kubernetes, il ne s’agit pas d’un article présentation de k8s. Des pages plus précises et affinées seront produites sur ce même site web.

Il existe plusieurs possibilités pour déployer Kubernetes dans de petits labos, notamment grâce à des outils comme « k3s » ou encore « kind« … L’intérêt de Minikube, c’est sa simplicité : une commande permet de générer un environnement prêt à l’emploi ! Alors oui, ça abstrait beaucoup (peut-être trop pour certains) de facettes de Kubernetes, mais l’intérêt ici n’est pas tant de découvrir ce qu’il y a sous le capot.

Introduction & prérequis pour Minikube

logo minikube

Pour se faire, je suis parti d’une VM Debian 10 avec quelques outils indispensables pour le bon fonctionnement du système et une aisance d’exploitation. Je n’ai pas encore eu le temps ni eu l’opportunité de tester l’outil sur Debian 11 ni même Ubuntu (en version LTS).

Outils exploités : Curl, Git, Docker, VirtualBox, linux-headers, Minikube, Kubectl

sudo apt install curl git linux-headers-amd64 docker.io docker-compose --no-install-recommends

Minikube va générer un conteneur (dans docker) avec le nécessaire pour avoir/lancer k8s. Pour rappel, ce genre de service n’est pas à exploiter en production !

Installation du cluster Kubernetes

Les paquets nécessaires proviennent directement de Google (pour faire simple). A ce jour, lors de la saisie de l’article, il n’existe pas encore de dépôt particulier à installer dans vos dsitributions. Tout est à récupérer manuellement à coup de curl.

Avant de se lancer purement dans notre cluster Kubernetes, nous devons installer l’outil kubectl directement depuis les sources officielles, qui sera notre outil principal dans quelques instants.

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" && chmod +x kubectl
sudo cp kubectl /usr/local/bin/.

Maintenant, passons à l’installation – source officielle

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube
sudo cp minikube /usr/local/bin/minikube

Exploiter Minikube

La partie installation est finalisée après le téléchargement des deux binaires. Maintenant, créons notre premier cluster.

Dans l’idée, j’efface tout ce qui a été généré auparavant, puis j’attribuerai 6 Gb de RAM et 4 CPU pour créer les machines virtuelles nécessaires. De plus, l’extension metrics-server sera ajoutée pour avoir des statistiques dans le tableau de bord.

  • Supprimer les précédentes versions/essais :
minikube delete

# Pour effacer complètement les données et les traces résiduelles
rm -rf ~/.{minikube,kube}
  • Démarrer le cluster avec des limites de ressources
minikube start --memory 6144 --cpus 4
minikube addons enable metrics-server

A cet instant, votre cluster k8s est maintenant opérationnel ! Il est en attente de ses fichiers de déploiements de vos services. Pour aller plus loin, nous pouvons ouvrir le tableau de bord de Minikube via cette commande :

minikube dashboard

Votre navigateur web ouvrira une page « Kubernetes dashboard« , qui est le même disponible dans un vrai cluster Kubernetes. Dans ce tableau de bord, vous pouvez lister les déploiements, les pods, les replicaSet, voir les ingress, les stockages… Tout ce qui est interne ou en relation au cluster K8S.


Une fois les tests terminés, pour stopper le, une seule commande suffit :

minikube stop

Si vous souhaitez effacer complètement le cluster après l’avoir stoppé, une autre commande est possible :

minikube delete

Maintenant, il ne vous reste plus que votre imagination pour déployer plein de conteneurs..!

Je ne suis pas allé aux limites de l’outil, il n’y a pas eu de benchmark ni de comparaison à proprement parlé entre les diverses solutions.

Auteur

Bercé par l'informatique depuis mon plus jeune âge, je transforme ma passion en expertise.

2 commentaires

  1. Bonjour,
    J’ai l’impression qu’il y a un petit soucis avec la commande :
    curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube-linux-amd64
    sudo cp minikube-linux-amd64 /usr/local/bin/minikube

    en effet, en téléchargeant le fichier sous le nom « minikube » (option -o), il ne trouve pas de fichier minikube-linux-amd64 pour appliquer le chmod.

    J’obtiens le message d’erreur suivant (que je corrige facilement avec un « chmod +x minikube »)

    curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube-linux-amd64
    sudo cp minikube-linux-amd64 /usr/local/bin/minikube

    N’hésitez pas à supprimer ce commentaire une fois l’article corrigé.

    Merci pour votre tuto,

    Axel

    • Julien

      Bonjour Axel,
      En effet, coquille de copié/collé. C’est désormais re-testé et corrigé, merci beaucoup d’avoir remonté le problème !!
      Au plaisir 😉

Écrire un commentaire