Aujourd’hui, la majorité des grandes applications web tournent sur Kubernetes — une plateforme puissante pour automatiser le déploiement, la mise à l’échelle et la gestion de conteneurs. C’est devenu un standard incontournable dans le monde du cloud et du DevOps.
Mais avant de plonger dans un cluster Kubernetes complet en production, il faut un terrain de jeu. C’est là que Minikube entre en scène.
Minikube vous permet de faire tourner un cluster Kubernetes complet sur une seule machine, que ce soit une machine physique ou une machine virtuelle. C’est l’outil idéal pour :
– explorer Kubernetes sans configurer toute une infrastructure distribuée,
– tester des déploiements,
– développer des applications conteneurisées en toute liberté.
Minikube prend en charge différents hyperviseurs comme VirtualBox, KVM, ou Hyper-V, mais le plus simple et rapide à mettre en place reste souvent Docker. En utilisant Docker comme pilote, Minikube crée des conteneurs qui se comportent comme des nœuds Kubernetes, sans avoir besoin de machine virtuelle dédiée.
⚠️ Important : Minikube doit être installé sur un système physique ou une machine virtuelle. Il ne fonctionne pas dans un conteneur LXC, car ceux-ci ne prennent pas en charge la virtualisation imbriquée requise.
🎯 Si vous souhaitez devenir développeur d’applications cloud-native ou travailler dans le DevOps, comprendre Kubernetes et savoir utiliser Minikube est un véritable atout pour apprendre, expérimenter et progresser.
Dans ce tutoriel, je vous montre pas à pas comment installer Minikube avec le pilote Docker sur une machine Debian. Prêt à créer votre propre cluster Kubernetes local ? C’est parti.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
– Système Debian ou une distribution dérivée comme Ubuntu
– Docker installé et fonctionnel
💻 Ressources minimales conseillées
Pour faire fonctionner Minikube dans de bonnes conditions, il est recommandé de disposer au minimum de :
– 2 CPU (idéalement 4 ou plus)
– 4 Go de RAM (8 Go ou plus recommandés)
💡 Dans ce tutoriel, j’utilise une machine virtuelle sous Proxmox équipée de 2 vCPU et 12 Go de RAM.
Désactivation du swap
Kubernetes exige que le swap soit désactivé, sans quoi certains composants refuseront de démarrer.
Désactivez-le temporairement avec la commande suivante :
sudo swapoff -a
Pour désactiver le swap de manière permanente, il faut commenter ou supprimer la ligne correspondante dans le fichier /etc/fstab.
Vérification des ressources système
Avant de lancer Minikube, vous pouvez vérifier les ressources disponibles sur la machine :
free -h # pour vérifier la RAM disponible nproc # pour vérifier le nombre de cœurs CPU disponibles
Étape 1 : Installer Minikube
Commencez par télécharger la dernière version de Minikube :
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
Ensuite, installez-la dans un répertoire accessible globalement (comme /usr/local/bin) :
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Une fois installé, vérifiez que Minikube est bien fonctionnel avec :
minikube version
Vous devriez voir s’afficher le numéro de version installé.
Étape 2 : Configurer les permissions Docker
Ajoutez votre utilisateur au groupe docker pour pouvoir exécuter des commandes Docker (et Minikube) sans utiliser sudo :
sudo usermod -aG docker $USER newgrp docker
La commande newgrp docker applique immédiatement le changement de groupe sans avoir besoin de redémarrer la session.
Cette étape est indispensable pour que Minikube puisse utiliser Docker correctement avec les droits de l’utilisateur courant.
Étape 3 : Démarrer Minikube
Démarrage simple avec Docker :
minikube start --driver=docker
Cette commande lance Minikube en utilisant Docker comme backend de virtualisation, ce qui permet de simuler un cluster Kubernetes sans créer de machines virtuelles complètes.
Démarrage avec plus de ressources (8 Go RAM, 3 CPU) :
minikube start --driver=docker --memory=8096 --cpus=3
Cette configuration est recommandée pour des projets plus complexes ou plus lourds.
Options utiles supplémentaires :
- –disk-size=20g : définit la taille du disque virtuel alloué à Minikube
- –kubernetes-version=v1.30.0 : installe une version spécifique de Kubernetes
- –addons=ingress,dashboard : active des modules intégrés (comme l’ingress controller ou l’interface graphique)
⚠️ Attention : ne dépassez pas les ressources disponibles sur votre machine hôte. Laissez au minimum 1 vCPU et 1 Go de RAM pour le système hôte, sinon Minikube peut planter ou ralentir fortement votre VM.
Étape 4 : Vérifier le statut et accéder au tableau de bord
Une fois Minikube démarré, vérifiez que le cluster fonctionne correctement :
minikube status
Vous devriez voir un état “Running” pour tous les composants (host, kubelet, apiserver, etc.).
Accéder au tableau de bord Kubernetes
Minikube propose un tableau de bord web pour visualiser et gérer votre cluster. Pour l’activer sans lancer automatiquement le navigateur :
minikube dashboard --url
Cette commande retourne une URL comme :
Cette adresse est locale à la VM. Si vous êtes connecté à distance en SSH, elle ne fonctionnera pas directement depuis votre poste.
Accès sécurisé via un tunnel SSH
Depuis votre machine locale, créez un tunnel SSH pour rediriger le port du dashboard :
ssh -L 35287:127.0.0.1:35287 user@IP_ADDRESS
Remplacez 35287 par le vrai port affiché par la commande minikube dashboard –url
Remplacez IP_DE_TA_VM par l’adresse IP de votre VM Debian
Par exemple, dans mon cas :
ssh -L 35287:127.0.0.1:35287 oleks@10.10.25.252
Ouvrir le Dashboard dans le navigateur
Depuis votre navigateur local, accédez à l’URL suivante :
http://127.0.0.1:35287/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
Vous verrez le Kubernetes Dashboard à distance, accessible en toute sécurité via le tunnel SSH.
🖥️ À quoi sert le Dashboard ?
Le Kubernetes Dashboard est une interface web conviviale qui permet de :
- visualiser en temps réel les pods, services, déploiements, volumes, etc.
- créer, modifier ou supprimer des ressources Kubernetes
- consulter les logs des pods
- surveiller l’état de votre cluster de manière graphique
C’est un outil très utile pour l’administration, surtout quand on débute avec Kubernetes.
Commandes utiles supplémentaires
Voici quelques commandes pratiques pour gérer votre cluster Minikube au quotidien :
Lister les contextes Kubernetes disponibles :
minikube kubectl config get-contexts
Afficher les informations du cluster :
minikube kubectl cluster-info
Déployer une application de test (ex. NGINX)
Pour tester rapidement un déploiement :
minikube kubectl -- create deployment demo --image=nginx minikube kubectl -- expose deployment demo --type=NodePort --port=80 minikube service demo
Cela créera un pod avec NGINX et l’exposera via un service accessible depuis votre machine.
Voir les pods en cours d’exécution :
minikube kubectl get pods
Arrêter Minikube :
minikube stop
Supprimer complètement le cluster Minikube :
minikube delete
Minikube est maintenant installé et opérationnel. Vous pouvez commencer à déployer vos applications dans votre cluster Kubernetes local pour expérimenter et tester vos déploiements.
Minikube est maintenant installé et pleinement opérationnel sur votre machine. Vous pouvez commencer à déployer vos applications dans votre cluster Kubernetes local, expérimenter, apprendre et affiner vos déploiements en toute autonomie.
Bonne chance!