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 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.

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. 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 et à l’IdO. 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.

Managed Kubernetes de IONOS

Le moyen le plus simple de gérer les charges de travail en conteneur. Configuration automatisée des clusters Kubernetes ainsi que visibilité et contrôle maximum des clusters K8s.

Stockage persistant
Assistance 24/7
Configuration automatisée des clusters

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. 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 :

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 ; 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é :

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 :

kubectl get po -A

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

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 :

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 :

kubectl get services hello-minikube

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

minikube service hello-minikube

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

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 :

minikube pause

Pour arrêter le cluster :

minikube stop

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

minikube config set memory 16384

Pour rechercher les services Kubernetes :

minikube addons list

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

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

Pour supprimer tous les clusters Minikube :

minikube delete --all
Conseil

Vous aimeriez en savoir plus sur le grand frère de Minikube, Kubernetes ? Notre tutoriel approfondi sur Kubernetes regroupe de nombreuses informations pratiques à ce sujet.