Dev Local

minikube

Outil Kubernetes SIG pour cluster local - drivers Docker/KVM/Hyper-V/Podman, 30+ addons ingress/dashboard/registry, multi-node, tunnel LoadBalancer. Apache 2.0.

minikube est l'outil de référence pour créer un cluster Kubernetes local, maintenu par Kubernetes SIG Node. Il provisionne un cluster Kubernetes complet dans une VM ou un conteneur Docker/Podman selon le driver configuré. minikube se distingue par ses 30+ addons intégrés (ingress, metrics-server, registry, dashboard), son support multi-node depuis v1.10, et minikube tunnel pour exposer les services LoadBalancer. Utilisé massivement pour l'apprentissage et les tests de compatibilité Kubernetes vanilla.


Informations essentielles

Origine : Kubernetes SIG Node  ·  Licence : Apache 2.0  ·  Architectures : x86_64, ARM64

Liens : Site officiel  ·  Documentation  ·  GitHub  ·  Releases

Support : Kubernetes SIG Node. Projet très actif, releases fréquentes.

Stack par défaut

ComposantValeur
Driver par défautdocker (si disponible) ou kvm2/hyperv selon l'OS
Drivers supportésdocker, podman, kvm2, hyperv, virtualbox, vmware, parallels, none
Addons30+ (ingress, metrics-server, registry, dashboard…)
Multi-nodeOui (--nodes)
Runtime conteneurscontainerd (défaut), docker, cri-o

Prérequis

RessourceValeur
DriverDocker, Podman, VirtualBox, KVM2 ou Hyper-V selon l'OS
CPU2 vCPU minimum
RAM2 Go minimum (4 Go recommandés)
Disque20 Go minimum

Installation

# Linux - binaire
curl -Lo minikube \
  https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube && sudo mv minikube /usr/local/bin/

# macOS
brew install minikube

# Windows (Chocolatey)
choco install minikube

minikube version

Démarrer un cluster

# Cluster par défaut (driver auto-détecté)
minikube start

# Driver Docker avec ressources personnalisées
minikube start --driver=docker --cpus=4 --memory=8g --disk-size=40g

# Choisir la version Kubernetes
minikube start --kubernetes-version=v1.31.0

# Cluster multi-nœuds
minikube start --nodes=3 --cpus=2 --memory=4g

# Cluster nommé (plusieurs clusters en parallèle)
minikube start -p dev-cluster
minikube start -p staging-cluster

# Statut
minikube status
kubectl get nodes

Addons

# Lister tous les addons disponibles
minikube addons list

# Addons courants
minikube addons enable ingress          # NGINX Ingress Controller
minikube addons enable metrics-server   # Metrics API (nécessaire pour HPA)
minikube addons enable dashboard        # Kubernetes Dashboard
minikube addons enable registry         # Registry Docker locale (port 5000)

# Désactiver un addon
minikube addons disable dashboard

# Ouvrir le dashboard dans le navigateur
minikube dashboard

Accéder aux services

# Services LoadBalancer - tunnel vers l'hôte (nécessite sudo)
minikube tunnel

# Services NodePort - ouvrir dans le navigateur
minikube service my-service -n production

# Obtenir l'URL sans ouvrir le navigateur
minikube service my-service --url -n production

# IP du nœud minikube
minikube ip

Gestion des images

# Pointer le client Docker local sur le daemon minikube
# (les images buildées sont directement disponibles dans le cluster)
eval $(minikube docker-env)
docker build -t myimage:tag .

# Restaurer le contexte Docker original
eval $(minikube docker-env --unset)

# Charger une image locale dans minikube
minikube image load myimage:tag

# Lister les images dans minikube
minikube image ls

Gestion du cluster

# Arrêter (préserve l'état)
minikube stop

# Mettre en pause (libère le CPU sans supprimer)
minikube pause
minikube unpause

# Supprimer le cluster
minikube delete

# Supprimer un profil spécifique
minikube delete -p dev-cluster

# Lister tous les profils
minikube profile list

Mise à jour

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

# macOS
brew upgrade minikube

Troubleshooting

# Logs du cluster
minikube logs

# Afficher uniquement les problèmes détectés
minikube logs --problems=true

# SSH dans le nœud
minikube ssh

# Réinitialiser en cas de blocage
minikube delete && minikube start

# Contexte kubectl incorrect
kubectl config current-context        # Doit afficher "minikube"
kubectl config use-context minikube

# Driver introuvable ou non supporté
minikube start --driver=docker        # Forcer Docker explicitement

Ressources

Newsletter · 2 000+ abonnés

Reste au courant de ce qui bouge en prod

RudeOps veille devops hebdo, droit au but.

Gratuit · Sans spam · Désinscription en un clic