Pourquoi faire simple quand on peut faire encore plus simple ? C’est la devise de l’uti­li­taire Minikube, qui permet d’exécuter Ku­ber­netes en local sur votre propre or­di­na­teur.

Les con­te­neurs ont bousculé et trans­formé une part con­sé­quente du secteur de l’in­for­ma­tique, es­sen­tiel­le­ment dans le dé­ve­lop­pe­ment de logiciels. Les con­te­neurs per­met­tent de créer un en­vi­ron­ne­ment virtuel spé­cia­le­ment conçu pour une ap­pli­ca­tion, capable de fonc­tion­ner in­dé­pen­dam­ment et en parallèle d’autres ap­pli­ca­tions. Pour or­ches­trer les con­te­neurs et leurs processus, on a recours à des uti­li­taires comme Ku­ber­netes.

Cet outil de gestion fait figure de solution uni­ver­selle, car il permet non seulement d’ad­mi­nis­trer les ap­pli­ca­tions, les services et les res­sources, de con­fi­gu­rer et de mettre en réseau leurs dé­pen­dances, mais aussi d’organiser les in­fras­truc­tures exis­tantes de machines vir­tuelles. Dans le même temps, Ku­ber­netes propose des processus de contrôle qui sur­veil­lent le bon fonc­tion­ne­ment des nœuds, des pods et des con­tai­ners présents dans le cluster.

Minikube est une dis­tri­bu­tion allégée de Ku­ber­netes, qui assure une per­for­mance maximale pour utiliser les fonctions de Ku­ber­netes tout en profitant d’une charge de travail minimale. Une propriété in­té­res­sante non seulement pour ceux qui dé­couvrent le système des con­te­neurs, mais aussi pour ceux qui se con­fron­tent à l’edge computing et à l’IdO. Dans cet article, découvrez ce qu’est exac­te­ment le Minikube de Ku­ber­netes, à quoi sert cet uti­li­taire et comment il peut se passer de grosses in­fras­truc­tures.

Managed Ku­ber­netes de IONOS Cloud
Or­ches­trez vos charges de travail en toute sécurité

Managed Ku­ber­netes est la pla­te­forme idéale pour des ap­pli­ca­tions de con­te­neurs per­for­mantes et hautement évo­lu­tives.

Minikube : un principe mi­ni­ma­liste basé sur les con­te­neurs

Minikube est la solution adaptée pour les petits projets basés sur les con­te­neurs. Par exemple, quand on souhaite mettre en place un cluster Ku­ber­netes privé, il n’est plus né­ces­saire de tra­vail­ler avec un serveur complet ou sur le cloud. Minikube se passe de grandes in­fras­truc­tures et peut fa­ci­le­ment déployer des clusters locaux.

Un or­di­na­teur 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é­ve­lop­peurs, qui peuvent déployer leurs créations très sim­ple­ment grâce à Minikube. Il n’y a besoin ni de serveur, ni de cloud : le cluster Ku­ber­netes s’exécute uni­que­ment sur l’hôte local. Minikube fonc­tionne par défaut avec une Vir­tual­Box, qui sert de VM d’en­vi­ron­ne­ment d’exécution. Ainsi, il est possible de tra­vail­ler en même temps sur Linux, sur Windows ou sur macOS. Si vous préférez ne pas tra­vail­ler avec une Vir­tual­Box, vous pouvez aussi ajouter une extension à Minikube pour qu’il fonc­tionne en dehors d’un programme de vir­tua­li­sa­tion.

Version Minikube de Ku­ber­netes : ses fonc­tion­na­li­tés

La sim­pli­cité de Minikube se remarque à ses fonc­tion­na­li­tés. L’uti­li­taire supporte les fonc­tion­na­li­tés Ku­ber­netes suivantes :

Si vous vous êtes déjà fa­mi­lia­risé(e) avec les nom­breuses fonc­tion­na­li­tés de Ku­ber­netes, le pa­ra­mé­trage de Minikube vous paraîtra très limité. Cependant, l’uti­li­taire peut être complété par des features, comme par exemple un tunnel Minikube, qui fonc­tionne comme un ré­par­ti­teur de charge ; des contrôles d’accès basés sur les rôles ; des da­sh­boards ; des multi-clusters et bien d’autres fonctions standards de Ku­ber­netes. En com­plé­ment, une banque d’add-ons vous propose d’in­nom­brables options, comme le support GNU pour analyser au­to­ma­ti­que­ment les erreurs ou s’orienter vers l’ap­pren­tis­sage au­to­ma­tique.

Tout comme Ku­ber­netes, Minikube est porté par sa com­mu­nauté. De nouveau con­tri­bu­teurs se pré­sen­tent très ré­gu­liè­re­ment et pour­sui­vent sans relâche le dé­ve­lop­pe­ment de cet uti­li­taire. Dès que Ku­ber­netes 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 uti­li­sa­teurs pour résoudre un problème déjà connu.

Comment fonc­tionne Minikube ?

Un outil in­for­ma­tique n’a que rarement aussi bien porté son nom. Les nom­breuses pos­si­bi­li­tés de Ku­ber­netes sont ici mi­ni­mi­sées pour lui permettre de fonc­tion­ner sur un or­di­na­teur portable ou de bureau, tout en assurant ses fonc­tion­na­li­tés fon­da­men­tales. Avec seulement quelques commandes d’ins­tal­la­tion, Minikube devient un cluster Ku­ber­netes en­tiè­re­ment fonc­tion­nel, qui peut non seulement faire office d’en­vi­ron­ne­ment de test, mais aussi servir aux tâches de pro­gram­ma­tion quo­ti­diennes.

Minikube peut servir de VM d’en­vi­ron­ne­ment d’exécution grâce à dif­fé­rents hy­per­vi­seurs. Si un hy­per­vi­seur est installé dans le système (comme Vir­tual­Box que nous avons déjà évoqué), Minikube crée au­to­ma­ti­que­ment une machine virtuelle. Pour donner des ins­truc­tions au cluster Ku­ber­netes, il suffit, pour l’instant, d’utiliser la ligne de commande standard kubectl.

Lorsque tous les com­po­sants 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 Ku­ber­netes que vous pouvez con­fi­gu­rer avec la commande kubectl. Vous pourriez, par exemple, commencer l’ad­mi­nis­tra­tion en adaptant la mémoire à vos besoins.

Si vous tra­vail­lez déjà avec des con­te­neurs, 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 res­sources. Grâce à l’ajout d’add-ons, les fonc­tion­na­li­tés de Minikube sont aussi variées que n’importe quel autre système de con­te­neurs.

Les champs d’ap­pli­ca­tions de la version Minikube de Ku­ber­netes

L’ap­pli­ca­tion la plus im­por­tante de Minikube concerne la pos­si­bi­lité de s’exercer pour gagner de l’ex­pé­rience avec Ku­ber­netes. Les clusters vo­lu­mi­neux ne sont pas toujours librement dis­po­nibles. Minikube propose une solution rapide pour ex­pé­ri­men­ter ou tester des ap­pli­ca­tions. Ku­ber­netes lui-même propose un tutoriel complet sur l’uti­li­sa­tion de Minikube pour pouvoir commencer à tra­vail­ler même sans ex­pé­rience avec le système. Quoi qu’il en soit, Minikube permet aussi aux uti­li­sa­teurs de Ku­ber­netes de dé­ve­lop­per leurs com­pé­tences, en offrant une solution d’ex­pé­ri­men­ta­tion en continu.

Minikube est un en­vi­ron­ne­ment de test pour toutes les fonc­tion­na­li­tés de Ku­ber­netes. Les deux uti­li­taires sont dis­po­nibles en open source sous la licence Apache 2.0. Il est possible d’évaluer, d’activer, de dé­sac­ti­ver et de supporter con­crè­te­ment 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’éco­sys­tème Ku­ber­netes.

Pouvoir ex­pé­ri­men­ter fa­ci­le­ment, c’est une chose. Mais Minikube ne s’avère pas seulement utile pour les petits projets per­son­nels de pro­gram­ma­tion : il peut aussi servir aux tech­no­lo­gies externes, en tant que support ex­pé­ri­men­tal pour les GPU NVIDIA, entre autres. Ainsi, Minikube est aussi un outil in­té­res­sant pour les dé­ve­lop­peurs d’al­go­rithmes d’ap­pren­tis­sage au­to­ma­tique ou même de jeux vidéo.

Minikube s’adresse aussi aux cadres di­ri­geants du secteur de l’IT. Les CIO n’ont ha­bi­tuel­le­ment pas le temps de dé­ve­lop­per, de tester ou d’apprendre de nouveaux outils. La vitesse à laquelle évoluent les outils IT exige pourtant qu’ils le fassent. Pour se fa­mi­lia­ri­ser avec Ku­ber­netes, il n’y a pas de moyen plus simple que de se mettre à la page avec Minikube. Il existe par exemple une fonc­tion­na­lité Minikube pour le dashboard de Ku­ber­netes proposant un aperçu détaillé du com­por­te­ment de l’ap­pli­ca­tion sur le cluster, intégrant aussi les métriques d’uti­li­sa­tion. Par ailleurs, Minikube est l’outil parfait pour présenter ou faire la dé­mons­tra­tion en local de Ku­ber­netes.

Premiers pas dans l’univers immense de Minikube

Tout ce dont vous avez besoin pour installer Minikube, c’est d’un système de con­te­neurs (comme Docker, par exemple) ou d’un en­vi­ron­ne­ment avec une machine virtuelle, ainsi que de Ku­ber­netes. La do­cu­men­ta­tion of­fi­cielle de Ku­ber­netes détaille les ins­truc­tions d’ins­tal­la­tion 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’uti­li­taire allégé :

minikube start

Comme prévu, les prérequis con­cer­nant l’or­di­na­teur 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 con­te­neurs ou une machine virtuelle

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

kubectl get po -A

Minikube ré­ca­pi­tule le dashbord de Ku­ber­netes et permet de se fa­mi­lia­ri­ser fa­ci­le­ment avec ce nouvel en­vi­ron­ne­ment.

minikube dashboard

Vous pouvez main­te­nant commencer à déployer l’ap­pli­ca­tion. Créez un exemple de dé­ploie­ment mis à dis­po­si­tion 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 echo­ser­ver 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é­ploie­ment avec la commande suivante :

kubectl get services hello-minikube

La façon la plus simple d’accéder à ce service est de lancer un na­vi­ga­teur 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’ad­mi­nis­tra­tion pour le cluster.

Commande pour mettre Ku­ber­netes en pause sans impacter les ap­pli­ca­tions 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 re­dé­mar­rage) :

minikube config set memory 16384

Pour re­cher­cher les services Ku­ber­netes :

minikube addons list

Pour créer un deuxième cluster avec une version ancienne de Ku­ber­netes :

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, Ku­ber­netes ? Notre tutoriel ap­pro­fondi sur Ku­ber­netes regroupe de nom­breuses in­for­ma­tions pratiques à ce sujet.

Aller au menu principal