Skip to content

Minikube

Définition

Minikube est un outil open source qui permet de lancer un cluster Kubernetes local sur votre machine. Il est conçu principalement pour les développeurs et les débutants qui souhaitent se familiariser avec Kubernetes sans avoir à configurer un cluster complet sur un cloud ou dans un environnement de production.

Minikube simule un cluster Kubernetes mononoeud sur votre ordinateur, en créant un environnement de test qui est idéal pour le développement, l'expérimentation et l'apprentissage de Kubernetes. Il utilise des technologies de virtualisation ou de containerisation (comme Docker) pour créer cet environnement local.

Fonctionnalités principales

-> Cluster Kubernetes local

Minikube démarre un cluster Kubernetes single node sur votre machine locale. Cela signifie que tous les composants nécessaires au fonctionnement de Kubernetes (API server, scheduler, etc.) sont lancés directement sur votre ordinateur.

-> Drivers multiples

Minikube peut utiliser différents types de virtualisation pour exécuter ce cluster Kubernetes. Il prend en charge des drivers comme Docker, VirtualBox, KVM, Hyper-V. Dans notre cas, nous utiliserons Docker comme driver.

-> Compatibilité avec kubectl

Une fois Minikube démarré, vous pouvez utiliser kubectl (l'outil en ligne de commande pour Kubernetes) pour interagir avec le cluster local exactement de la même manière que vous le feriez avec un cluster Kubernetes distant.

-> Modes multi-nœuds

Bien que par défaut Minikube crée un nœud unique, il est possible de configurer Minikube pour exécuter plusieurs nœuds, simulant ainsi un environnement plus complexe, similaire à celui d’un cluster Kubernetes réel.

-> Ajout d'addons

Minikube propose des addons (modules supplémentaires) qui peuvent être activés pour enrichir les fonctionnalités de votre cluster. Par exemple, vous pouvez activer un tableau de bord Kubernetes, ajouter des outils d'observabilité comme metrics-server, ou activer des systèmes d'ingress pour gérer le routage HTTP/HTTPS.

Pourquoi utiliser Minikube ?

Minikube est particulièrement utile dans les situations suivantes :

-> Apprentissage de Kubernetes

Minikube est le meilleur choix pour ceux qui souhaitent se former à Kubernetes, car il ne nécessite pas de déployer un cluster complexe dans un environnement cloud ou sur des serveurs physiques. Vous avez ainsi un environnement de développement rapide, isolé, et facile à configurer.

-> Développement local

Si vous développez des applications conteneurisées qui doivent être déployées sur Kubernetes, Minikube vous permet de tester et de développer localement, puis de déployer sur des clusters Kubernetes distants ou en production par la suite.

-> Tests CI/CD

Les environnements d'intégration continue (CI) peuvent utiliser Minikube pour exécuter des tests automatisés sur un cluster Kubernetes local, avant d'envoyer le code en production.

Comment fonctionne Minikube ?

Minikube utilise des outils de virtualisation ou de containerisation (comme Docker) pour créer un environnement isolé où il exécute les différents composants d'un cluster Kubernetes. Voici comment cela fonctionne en détail :

-> Démarrage du cluster

Lors de l'exécution de la commande minikube start, Minikube :

  • Télécharge l'image du conteneur Kubernetes (si nécessaire).
  • Lance un conteneur (ou une VM) qui héberge le nœud maître Kubernetes.
  • Démarre les différents services Kubernetes à l'intérieur de ce conteneur, tels que l'API server, le contrôleur, le planificateur, etc.

-> Interaction avec le cluster

Une fois Minikube démarré, il configure automatiquement kubectl pour pointer vers le cluster local. Vous pouvez ensuite utiliser kubectl pour créer, modifier et supprimer des objets Kubernetes (Pods, Deployments, Services, etc.) dans cet environnement local.

-> Simulation de comportements réels

Bien qu'il soit limité à un seul nœud (dans la configuration par défaut), Minikube se comporte de la même manière qu'un cluster Kubernetes en production. Vous pouvez ainsi apprendre et tester des concepts comme les déploiements, les services, les volumes persistants, et bien plus encore.

-> Extensibilité via des Addons

Minikube vous permet d'activer plusieurs addons qui ajoutent des fonctionnalités supplémentaires au cluster. Par exemple, vous pouvez activer :

  • Le tableau de bord Kubernetes pour une vue graphique de votre cluster.
  • L'ingress pour gérer le routage HTTP/HTTPS.
  • Les outils de surveillance comme metrics-server pour observer la consommation de ressources des Pods et des nœuds.

Alternatives à Minikube

Minikube n'est pas le seul outil pour exécuter Kubernetes localement. Voici les principales alternatives :

OutilDescriptionCas d'usage
kindKubernetes IN Docker - crée des clusters K8s dans des containers DockerCI/CD, tests, développement rapide
k3dWrapper autour de k3s (K8s allégé) dans DockerClusters légers, ressources limitées
Docker DesktopInclut un cluster K8s intégré (Windows/macOS)Développeurs déjà sur Docker Desktop
Rancher DesktopAlternative open source à Docker Desktop avec K8s intégréEnvironnement complet, multi-runtime

Minikube reste le choix recommandé pour l'apprentissage grâce à sa documentation complète et ses nombreux addons.

Minikube vs Kubernetes en production

Minikube est une excellente solution pour le développement et l'apprentissage, mais il présente certaines limites comparé à un cluster Kubernetes en production :

-> Nœud unique

Par défaut, Minikube utilise un nœud unique. Les clusters en production utilisent généralement plusieurs nœuds pour assurer la haute disponibilité et la répartition de charge.

-> Limitation des ressources

Minikube utilise les ressources de votre machine locale. Cela signifie qu'il peut être limité en termes de mémoire, de CPU et de stockage, contrairement à des clusters de production qui peuvent s'appuyer sur de multiples serveurs physiques ou virtuels dans un cloud.

-> Environnement isolé

Minikube est conçu pour être utilisé localement. Bien qu'il soit possible de le configurer pour permettre des accès externes, ce n'est pas sa vocation principale. En production, les clusters Kubernetes sont souvent déployés dans des environnements accessibles à partir d'autres réseaux ou du cloud.

Installation

Avant d'installer Minikube, assurez-vous que Docker est bien installé sur votre machine, car nous allons l'utiliser comme driver pour notre cluster Kubernetes local. Docker permet de containeriser le cluster sans avoir besoin de créer des machines virtuelles supplémentaires, ce qui simplifie la configuration et réduit les ressources nécessaires.

Vous pouvez vérifier que Docker est bien installé en exécutant la commande suivante :

sh
docker --version

Si Docker n'est pas encore installé, rendez-vous sur la section installation de la formation docker.

Linux

Pré-requis

  • Un hyperviseur comme KVM, VirtualBox ou Docker.
  • kubectl doit être installé (outil en ligne de commande pour Kubernetes).
  • Vous pouvez vérifier si Docker est bien installé en exécutant : docker --version.

Étapes

  1. Installer Minikube via curl : Ouvrez un terminal et exécutez la commande suivante pour télécharger et installer Minikube :
sh
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
  1. Vérifiez l'installation : Une fois l'installation terminée, vérifiez que Minikube est bien installé :
sh
minikube version
  1. Démarrez Minikube : Vous pouvez démarrer Minikube avec la commande suivante (driver docker) :
sh
minikube start --driver=docker

Windows

Prérequis :

  1. Hypervisor (Virtualiseur) : Vous devez avoir un hyperviseur installé pour exécuter Minikube, tel que Hyper-V (qui est disponible sur Windows 10/11 Pro ou Enterprise) ou VirtualBox.
  2. kubectl : L'outil en ligne de commande Kubernetes doit être installé. Vous pouvez l’installer via un binaire.
  • Téléchargement du binaire de Minikube :

    • Rendez-vous sur la page des releases de Minikube sur GitHub.
    • Téléchargez la version Windows en cliquant sur le lien de l'exécutable .exe dans la section Assets (par exemple, minikube-windows-amd64.exe).
    • Renommez le fichier téléchargé en minikube.exe.
  • Déplacer l'exécutable dans un dossier accessible :

    • Placez minikube.exe dans un dossier accessible à partir du PATH. Par exemple :
      • Créez un dossier C:\minikube\ et copiez minikube.exe à l'intérieur.
  • Configurer la variable d'environnement PATH :

    • Ouvrez les Paramètres Système (clic droit sur "Ce PC" > "Propriétés" > "Paramètres système avancés").
    • Dans l'onglet "Avancé", cliquez sur "Variables d'environnement".
    • Sous "Variables système", sélectionnez "Path" et cliquez sur "Modifier".
    • Cliquez sur "Nouveau" et ajoutez le chemin vers le dossier où se trouve minikube.exe (par exemple, C:\minikube\).
    • Cliquez sur "OK" pour fermer toutes les fenêtres.

Commandes de base

Voici quelques commandes pratiques pour utiliser Minikube :

  • Démarrer Minikube

    sh
    minikube start --driver=docker
  • Vérifier l'état de Minikube

    sh
    minikube status
  • Arrêter Minikube

    sh
    minikube stop
  • Supprimer le cluster Minikube

    sh
    minikube delete
  • Afficher le tableau de bord Kubernetes :

    sh
    minikube dashboard

k9s

K9s est un outil interactif en ligne de commande pour gérer vos clusters Kubernetes. Il permet aux utilisateurs d'explorer, de visualiser et de manipuler les ressources Kubernetes de manière simplifiée et conviviale via une interface terminale.

Voici les étapes pour installer K9s et un aperçu de son contenu de base :

Installation

Rendez-vous sur https://github.com/derailed/k9s pour retrouver les étapes d'installation de k9s.

Contenu de base de K9s

Une fois K9s installé, voici ce que vous trouverez et comment vous pourrez l'utiliser :

  1. Interface de gestion de Kubernetes :

    • Après avoir démarré K9s avec la commande k9s, vous serez accueilli par une interface textuelle dans votre terminal.
    • Par défaut, K9s utilise le contexte Kubernetes actif défini par kubectl.
  2. Vue d'ensemble des ressources :

    • K9s permet de naviguer rapidement parmi les différentes ressources Kubernetes telles que les pods, services, déploiements, secrets, etc.
    • Les principales ressources que vous pouvez gérer dans l'interface incluent :
      • Pods (:pods)
      • Déploiements (:deployments)
      • Services (:services)
      • ConfigMaps (:configmaps)
      • Secrets (:secrets)
      • Namespaces (:ns)
      • Et bien plus encore.
  3. Gestion des Pods :

    • Vous pouvez rapidement accéder à la liste des pods, les inspecter, redémarrer ou supprimer un pod directement depuis K9s.
    • Vous pouvez également visualiser les logs d’un pod en temps réel et attacher un shell à un pod si nécessaire.
  4. Filtrage et recherche :

    • K9s propose des fonctionnalités de filtrage et de recherche pour trouver facilement une ressource spécifique. Par exemple, pour rechercher un pod particulier, vous pouvez utiliser des mots-clés ou des labels.
  5. Commandes et raccourcis claviers :

    • K9s est livré avec un ensemble de commandes pour naviguer dans les ressources, exécuter des actions, et obtenir des informations détaillées.
    • Quelques raccourcis utiles :
      • :q pour quitter K9s.
      • :pods pour afficher la liste des pods.
      • :deployments pour afficher la liste des déploiements.
      • d pour supprimer un pod ou une ressource sélectionnée.
      • l pour afficher les logs d’un pod.
      • / pour filtrer ou rechercher des ressources.
  6. Configuration K9s :

    • K9s stocke ses configurations dans un fichier YAML situé dans votre répertoire utilisateur sous .k9s/config.yml. Ce fichier vous permet de personnaliser certains aspects de l’interface, comme les couleurs, les thèmes, etc.