# Minikube : un environnement Kubernetes maximal pour une charge de travail allégée

Pourquoi faire simple quand on peut faire encore plus simple ? C’est la devise de l’utilitaire Minikube, qui permet d’exécuter Kubernetes en local sur votre propre ordinateur.

Les [conteneurs](https://www.ionos.fr/digitalguide/serveur/know-how/conteneurs-informatiques-virtualisation-sans-emulation/ "Conteneurs informatiques : virtualisation sans émulation") ont bousculé et transformé une part conséquente du secteur de l’informatique, essentiellement dans le développement de logiciels. Les conteneurs permettent de créer un environnement virtuel spécialement conçu pour une application, capable de fonctionner indépendamment et en parallèle d’autres applications. Pour **orchestrer les conteneurs** et leurs processus, on a recours à des utilitaires comme [Kubernetes](https://www.ionos.fr/digitalguide/serveur/know-how/kubernetes/ "Kubernetes").

Cet outil de gestion fait figure de solution universelle, car il permet non seulement d’administrer les applications, les services et les ressources, de configurer et de mettre en réseau leurs dépendances, mais aussi d’organiser les infrastructures existantes de [machines virtuelles](https://www.ionos.fr/digitalguide/serveur/know-how/machine-virtuelle/ "Machine virtuelle"). Dans le même temps, Kubernetes propose des processus de contrôle qui surveillent le bon fonctionnement des nœuds, des pods et des containers présents dans le cluster.

**Minikube est une distribution allégée de Kubernetes**, qui assure une performance maximale pour utiliser les fonctions de Kubernetes tout en profitant d’une charge de travail minimale. Une propriété intéressante non seulement pour ceux qui découvrent le système des conteneurs, mais aussi pour ceux qui se confrontent à l’[edge computing](https://www.ionos.fr/digitalguide/serveur/know-how/edge-computing/ "Edge computing") et à l’[IdO](https://www.ionos.fr/digitalguide/sites-internet/droit-dinternet/internet-des-objets/ "Internet des objets"). Dans cet article, découvrez ce qu’est exactement le Minikube de Kubernetes, à quoi sert cet utilitaire et comment il peut se passer de grosses infrastructures.

## Minikube : un principe minimaliste basé sur les conteneurs

**Minikube est la solution adaptée pour les petits projets basés sur les conteneurs**. Par exemple, quand on souhaite mettre en place un cluster Kubernetes privé, il n’est plus nécessaire de travailler avec un serveur complet ou sur le cloud. Minikube se passe de grandes infrastructures et peut facilement déployer des clusters locaux.

Un ordinateur et un cluster avec un seul nœud : c’est tout ce dont Minikube a besoin. Ces prérequis minimaux s’adressent en premier lieu aux petits projets privés de développeurs, qui peuvent déployer leurs créations très simplement grâce à Minikube. **Il n’y a besoin ni de serveur, ni de cloud : le cluster Kubernetes s’exécute uniquement sur l’**[hôte local](https://www.ionos.fr/digitalguide/serveur/know-how/localhost/ "Localhost")**.** Minikube fonctionne par défaut avec une VirtualBox, qui sert de VM d’environnement d’exécution. Ainsi, il est possible de travailler en même temps sur Linux, sur Windows ou sur macOS. Si vous préférez ne pas travailler avec une VirtualBox, vous pouvez aussi ajouter une extension à Minikube pour qu’il fonctionne en dehors d’un programme de virtualisation.

## Version Minikube de Kubernetes : ses fonctionnalités

La simplicité de Minikube se remarque à ses fonctionnalités. L’utilitaire supporte les fonctionnalités Kubernetes suivantes :

- [DNS](https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/dns-records/)
- [NodePorts](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/introduction-a-nodejs/)
- ConfigMaps et Secrets
- Dashboards
- Environnements d’exécution de conteneurs : [Docker](https://www.ionos.fr/digitalguide/serveur/configuration/tutoriel-docker-installation-et-premiers-pas/) ou [ses alternatives](https://www.ionos.fr/digitalguide/serveur/know-how/apercu-des-alternatives-a-docker/) comme [rkt](https://github.com/rkt/rkt "rkt à GitHub"), [CRI-O](https://www.ionos.fr/digitalguide/serveur/know-how/cri-o-quest-ce-que-cest/) et [containerd](https://github.com/containerd/containerd "containerd à Github")
- Activation de la CNI (Container Network Interface)
- Ingress

Si vous vous êtes déjà familiarisé(e) avec les nombreuses fonctionnalités de Kubernetes, le paramétrage de Minikube vous paraîtra très limité. Cependant, l’utilitaire peut être complété par des **features**, comme par exemple un tunnel Minikube, qui fonctionne comme un [répartiteur de charge](https://www.ionos.fr/digitalguide/serveur/know-how/load-balancer-repartition-de-charge-sur-un-serveur/ "Load Balancer : répartition de charge sur un serveur") ; des contrôles d’accès basés sur les rôles ; des dashboards ; des multi-clusters et bien d’autres fonctions standards de Kubernetes. En complément, une banque d’add-ons vous propose d’innombrables options, comme le support GNU pour analyser automatiquement les erreurs ou s’orienter vers l’apprentissage automatique.

Tout comme Kubernetes, Minikube est porté par sa **communauté**. De nouveau contributeurs se présentent très régulièrement et poursuivent sans relâche le développement de cet utilitaire. Dès que Kubernetes bénéficie d’une mise à jour, Minikube s’adapte à la dernière version. Ainsi, par exemple, il existe un catalogue de solutions auquel peuvent se référer les utilisateurs pour résoudre un problème déjà connu.

## Comment fonctionne Minikube ?

Un outil informatique n’a que rarement aussi bien porté son nom. Les nombreuses possibilités de Kubernetes sont ici minimisées pour lui permettre de fonctionner sur un ordinateur portable ou de bureau, tout en assurant ses fonctionnalités fondamentales. **Avec seulement quelques commandes d’installation, Minikube devient un cluster Kubernetes entièrement fonctionnel**, qui peut non seulement faire office d’environnement de test, mais aussi servir aux tâches de programmation quotidiennes.

Minikube peut servir de VM d’environnement d’exécution grâce à différents hyperviseurs. Si un hyperviseur est installé dans le système (comme VirtualBox que nous avons déjà évoqué), Minikube crée automatiquement une machine virtuelle. Pour donner des instructions au cluster Kubernetes, il suffit, pour l’instant, d’utiliser la ligne de commande standard kubectl.

Lorsque tous les composants sont installés, vous pouvez démarrer Minikube. Le système alloue par défaut 1 GB de mémoire à la machine virtuelle et crée un cluster Kubernetes que vous pouvez configurer avec la commande kubectl. Vous pourriez, par exemple, commencer l’administration en adaptant la mémoire à vos besoins.

Si vous travaillez déjà avec des conteneurs, vous évoluerez en terrain connu. À l’aide d’espaces de noms, le cluster physique est divisé en plusieurs zones. Vous pouvez créer vos propres espaces de nom avec la commande kubectl pour avoir un meilleur aperçu de vos ressources. Grâce à l’ajout d’add-ons, les fonctionnalités de Minikube sont aussi variées que n’importe quel autre système de conteneurs.

## Les champs d’applications de la version Minikube de Kubernetes

L’application la plus importante de Minikube concerne la possibilité **de s’exercer pour gagner de l’expérience avec Kubernetes**. Les clusters volumineux ne sont pas toujours librement disponibles. Minikube propose une solution rapide pour expérimenter ou tester des applications. **Kubernetes lui-même propose un tutoriel complet sur l’utilisation de Minikube** pour pouvoir commencer à travailler même sans expérience avec le système. Quoi qu’il en soit, Minikube permet aussi aux utilisateurs de Kubernetes de développer leurs compétences, en offrant une solution d’expérimentation en continu.

Minikube est un environnement de test pour toutes les fonctionnalités de Kubernetes. Les deux utilitaires sont disponibles en open source sous la licence Apache 2.0. Il est possible d’évaluer, d’activer, de désactiver et de supporter concrètement les clusters et leurs add-ons. Ces derniers peuvent être améliorés grâce à un simple système de trial-and-error, ce qui contribue à enrichir l’écosystème Kubernetes.

Pouvoir expérimenter facilement, c’est une chose. Mais Minikube ne s’avère pas seulement utile pour les petits projets personnels de programmation : il peut aussi servir aux technologies externes, en tant que support expérimental pour les GPU NVIDIA, entre autres. Ainsi, Minikube est aussi un outil intéressant pour **les développeurs d’algorithmes d’apprentissage automatique ou même de jeux vidéo.**

Minikube s’adresse aussi aux cadres dirigeants du secteur de l’IT. Les CIO n’ont habituellement pas le temps de développer, de tester ou d’apprendre de nouveaux outils. La vitesse à laquelle évoluent les outils IT exige pourtant qu’ils le fassent. **Pour se familiariser avec Kubernetes, il n’y a pas de moyen plus simple que de se mettre à la page avec Minikube**. Il existe par exemple une fonctionnalité Minikube pour le dashboard de Kubernetes proposant un aperçu détaillé du comportement de l’application sur le cluster, intégrant aussi les métriques d’utilisation. Par ailleurs, Minikube est l’outil parfait pour présenter ou faire la démonstration en local de Kubernetes.

## Premiers pas dans l’univers immense de Minikube

Tout ce dont vous avez besoin pour installer Minikube, c’est d’un système de conteneurs (comme Docker, par exemple) ou d’un environnement avec une machine virtuelle, ainsi que de Kubernetes. La documentation officielle de Kubernetes détaille les instructions d’installation de Minikube. Il suffit d’appeler l’interface de ligne de commande native kubectl, puis de taper la toute dernière commande pour accéder à l’utilitaire allégé :

```none
minikube start
```

Comme prévu, les **prérequis concernant l’ordinateur local** sont affichés :

- 2 CPU ou plus
- 2 GB de mémoire
- 20 GB d’espace de stockage sur disque dur
- Connexion Internet
- Un système de gestion de conteneurs ou une machine virtuelle

Dès que kubectl est installé, vous pouvez lancer le nouveau cluster :

```none
kubectl get po -A
```

Minikube récapitule le dashbord de Kubernetes et permet de se familiariser facilement avec ce nouvel environnement.

```none
minikube dashboard
```

Vous pouvez maintenant commencer à déployer l’application. Créez un exemple de déploiement mis à disposition sur le port 8080 avec la commande suivante :

```none
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080
```

---

### Note

Avec ces commandes, vous utilisez l’image *echoserver* réalisée au préalable. En principe, vous pouvez utiliser une autre image et même votre propre image.

---

La procédure peut prendre un peu de temps, mais vous pourrez ensuite lancer le déploiement avec la commande suivante :

```none
kubectl get services hello-minikube
```

La façon la plus simple d’accéder à ce service est de lancer un navigateur Internet avec Minikube :

```none
minikube service hello-minikube
```

Vous pouvez aussi utiliser la commande kubectl pour rediriger vers le port :

```none
kubectl port-forward service/hello-minikube 7080:8080
```

Enfin, voici quelques commandes d’administration pour le cluster.

Commande pour mettre Kubernetes en pause sans impacter les applications déjà mises en place :

```none
minikube pause
```

Pour arrêter le cluster :

```none
minikube stop
```

Pour augmenter la mémoire par défaut (nécessite un redémarrage) :

```none
minikube config set memory 16384
```

Pour rechercher les services Kubernetes :

```none
minikube addons list
```

Pour créer un deuxième cluster avec une version ancienne de Kubernetes :

```none
minikube start -p aged --kubernetes-version=v1.16.1
```

Pour supprimer tous les clusters Minikube :

```none
minikube delete --all
```

---

### Conseil

Vous aimeriez en savoir plus sur le grand frère de Minikube, Kubernetes ? Notre [tutoriel approfondi sur Kubernetes](https://www.ionos.fr/digitalguide/serveur/configuration/tutoriel-kubernetes/ "Tutoriel Kubernetes") regroupe de nombreuses informations pratiques à ce sujet.

---


This is a markdown version of: [https://www.ionos.fr/digitalguide/serveur/outils/minikube-de-kubernetes/](https://www.ionos.fr/digitalguide/serveur/outils/minikube-de-kubernetes/) for AI/LLM consumption.