Comment créer son cluster Kubernetes en local avec Minikube

Ce tutoriel vous guide dans l’installation de l’outil Minikube et dans la mise en place de son propre environnement de test sur Kubernetes. De quoi apprendre et tester les fonctions de l’orchestrateur de containers n°1.

Kubernetes est devenu la brique logicielle standard si l’on souhaite entrer dans le monde des containers et des architectures de microservices. Le hic : sa courbe d’apprentissage peut souvent rebuter les moins aguerris. Ces professionnels ont dès lors besoin de se familiariser avec la belle mécanique de Kubernetes et de développer leurs compétences à leur rythme. Une des solutions : monter son propre Kubernetes et apprendre.

Ce tutoriel utilise MiniKube, un outil développé pour installer l’orchestrateur de containers en local et commencer à tester les fonctions. Cela ne nécessite pas l’installation d’équipement et de logiciels supplémentaires, ni même d’un investissement en temps important pour l'installer. Ce laboratoire domestique permet donc d’isoler l’essentiel de la nouvelle technologie, hors des environnements critiques de la production. En fait, Minikube exécute un cluster Kubernetes à un nœud dans une VM.

Cet article vous guide pas à pas dans l’installation de vitre labo, vous aide à exécuter les commandes kubectl, et vous transporte au plus près des workloads dans K8.

Un labo Kubernetes : quelques exigences

Un cluster Minikube Kubernetes est installé pré-construit et fonctionne dans une seule machine virtuelle sur l'ordinateur de l'utilisateur. Minikube fonctionne sous Linux, Windows et MacOS et peut utiliser une variété d'hyperviseurs pour sa VM.

Les lignes de commande Minikube kubectl s'exécutent directement sur l'ordinateur d'origine, et les applications motorisées par Kubernetes y sont également accessibles.

Ce tutoriel ne fait tourner qu’une simple application hébergée par Kubernetes sous macOS avec Oracle VM VirtualBox. Les processus d'installation pour Linux et Windows sont un peu différents. Il existe également d'autres hyperviseurs. Le site web de Kubernetes détaille le déploiement de Minikube sur n'importe quel OS.

Minikube : installation

Pour démarrer ce tutoriel, installez la dernière version de VirtualBox, puis installez la ligne de commande kubectl pour gérer Kubernetes, par téléchargement direct. Minikube est également installé par téléchargement direct.

Installation Minikube
Figure 1. Installez kubectl et Minikube sur votre machine.

Rendez-vous au dépôt GitHub dédié aux labos Kubernetes, puis trouvez Minikube.txt. Ces commandes peuvent être clonées et collées dans une fenêtre de terminal. Une fois l'installation terminée, Minikube démarrera et téléchargera la Minikube VM, puis le cluster Kubernetes. Une fois téléchargé, Minikube n'a pas besoin d'un accès Internet - à condition que toutes les images Docker nécessaires aient déjà été téléchargées.

Figure 2. Minikube start configure votre labo Kubernetes en local.

Minikube et Kubernetes : utilisation

A ce stade du tutoriel, vous avez tout ce dont vous avez besoin pour commencer à apprendre Kubernetes. Démarrez deux instances du serveur web Nginx, puis vérifiez que les deux instances sont disponibles.

Nginx
Figure 3. Deux replicas de Nginx tournent sur Minikube.

Nginx s’exécute dans deux conteneurs Docker mais n'est pas accessible hors du cluster Kubernetes. La façon la plus simple d'exposer le déploiement et de le rendre accessible de l'extérieur est d'utiliser l'adresse IP standard 192.168.99.100 (de la Minikube VM) et d'exposer un NodePort. Le système convertit l'adresse pour le port TCP de cette adresse IP vers l'adresse IP interne du conteneur.

Exposer Nginx
Figure 4. Expose un NodePort pour permettre à Nginx d’accéder depuis l’extérieur au cluster Kubernetes.

Pour s'assurer que Nginx est actif, ouvrez un navigateur Web, et entrez  http://192.168.99.100:<port>, où le port est celui indiqué dans la commande kubectl get services, comme le montre la Figure 4 ci-dessus.

Un serveur web est maintenant déployé sur Kubernetes.

Jusqu'à présent, nous avons utilisé des outils en ligne de commande pour gérer Kubernetes, ce qui est une excellente pratique pour l'automatisation. Cependant, une interface graphique facilite grandement l'exploration de ce qui se passe dans ce labo Kubernetes. Utilisez la commande minikube dashboard pour lancer un navigateur Web et ouvrir le tableau de bord.

Le tableau de bord affiche des informations sur les déploiements actifs, l'exécution de Pods (là où se trouvent les containers) et plusieurs autres éléments qui dépassent le cadre de ce tutoriel.

Pour fermer Minikube, exécutez la commande minikube stop pour arrêter la VM. Minikube conservera les déploiements ainsi que les services définis au démarrage. Pour empêcher le déploiement de reprendre, supprimez l'installation avec kubectl delete po,svc,deploy my-nginx avant de fermer Minikube.

Un cluster Kubernetes en production aura certes plus d'un hôte ;  ce laboratoire n'est utile que pour des tests à petite échelle. Cependant, ce tutoriel donne les premières réponses que l’on doit se poser pour comprendre Kubernetes et prendre en main cette technologie désormais indissociable des architectures modernes.

Pour approfondir sur Outils de développement