Les développeurs et administrateurs système intéressés à apprendre Kubernetes ont entendu parler de Minikube. Kubernetes est un outil d’orchestration de conteneurs complexe qui peut être accablant pour les débutants. Minikube a été développé pour aider les gens à apprendre Kubernetes et à tester leurs idées localement. Dans ce didacticiel, nous garderons les informations de base, afin que vous puissiez comprendre et exécuter votre premier cluster Kubernetes sur Minikube.
Qu’est-ce que Minikube?
Minikube a été développé pour permettre aux utilisateurs d’exécuter Kubernetes localement. Lorsque vous installez et exécutez Minikube sur votre ordinateur, il exécute un cluster Kubernetes à nœud unique dans une machine virtuelle.
Pourquoi Minikube?
Minikube est destiné à la fois aux nouveaux utilisateurs et aux développeurs réguliers. L’installation de Kubernetes est longue et gourmande en ressources. Avec Minikube, vous obtenez une version plus petite d’un cluster Kubernetes à nœud unique sur votre ordinateur personnel. Si vous êtes un apprenant, cela vous donne la possibilité de jouer et de comprendre les concepts de base. Une fois que vous êtes devenu un praticien régulier, vous pouvez toujours utiliser Minikube pour tester vos idées localement avant de le déployer dans votre centre de données ou votre serveur. Cela peut fonctionner comme votre environnement de test.
Que pouvez-vous faire avec Minikube?
Minikube est idéal pour apprendre Kubernetes et tester vos concepts et vos idées pendant le développement.
Prérequis
Même si ce n’est pas nécessaire pour ce didacticiel, une connaissance de base des conteneurs tels que Docker est utile pour comprendre Minikube / Kubernetes.
Vos besoins matériels ont la virtualisation activée dans le BIOS de votre ordinateur. La bonne nouvelle est que la plupart des machines modernes l’ont déjà activé.
Avoir Minikube installé sur votre machine, et pour cela il vous faut :
installer VirtualBox, installer kubectl, installer Minikube
Définitions de base des concepts Minikube / Kubernetes
Pour utiliser Minikube, vous devez comprendre les idées de base décrites ci-dessous. Les définitions n’essaient pas d’expliquer la technologie en profondeur. Cela vous donne seulement une compréhension des concepts de base de Kubernetes. Dans cette discussion, Kubernetes et Minikube signifient la même chose
Conteneur : Dans Minikube, les conteneurs sont utilisés comme éléments de base de la création d’applications.
Pod : Pod est une collection d’un ou plusieurs conteneurs qui partagent le stockage et les ressources réseau. Les pods contiennent la définition de la manière dont les conteneurs doivent être exécutés dans Minikube. Minikube utilise ces définitions pour conserver les ressources nécessaires. Par exemple, vous pouvez définir que vous avez besoin de deux pods. Pendant l’exécution, si un pod tombe en panne, Minikube lancera automatiquement un nouveau pod.
Service : Les pods étant remplaçables, Minikube a besoin d’une couche d’abstraction pour que l’interaction entre les différents pods reste transparente. Par exemple, si un pod meurt et qu’un nouveau pod est créé, les utilisateurs de l’application ne doivent pas s’enliser dans les détails des adresses réseau et des problèmes associés. Les services s’enroulent autour des pods pour créer des niveaux d’abstraction.
Master : Le maître coordonne le cluster. C’est comme le cerveau de l’opération.
Node : Travailleurs qui exécutent les pods.
kubectl : C’est l’interface de ligne de commande pour exécuter des commandes sur le cluster Kubernetes.
Déploiement sur Minikube
Une fois que tout les prérequis installés, vous pouvez démarrer Minikube avec la commande suivante:
$ minikube start
There is a newer version of minikube available (v0.28.0). Download it here:
https://github.com/kubernetes/minikube/releases/tag/v0.28.0
To disable this notification, run the following:
minikube config set WantUpdateNotification false
Starting local Kubernetes v1.9.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.
Loading cached images from config file.
Lors de votre première exécution, le démarrage de Minikube prendra du temps car il construira la VM pour vous. Vous pouvez vérifier votre VirtualBox pour voir la machine virtuelle Minikube tourne:
Vous pouvez utiliser la commande suivante pour vérifier l’état de votre Minikube:
$ minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100
Une grande fonctionnalité de Minikube est le tableau de bord. Depuis le tableau de bord, vous pouvez voir tout ce qui se passe dans Minikube. Vous pouvez également contrôler les ressources de votre cluster à partir du tableau de bord. Utilisez la commande suivante pour démarrer le tableau de bord dans votre navigateur par défaut:
$ minikube dashboard
Opening kubernetes dashboard in default browser...
Voici à quoi devrait ressembler le tableau de bord:
Déployons une application NGINX sur Minikube.
Voici les étapes:
1. Créez un pod:
$ kubectl run mynginxapp --image=nginx:latest --port=80
deployment "mynginxapp" created
2. Créez un service:
$ kubectl expose deployment mynginxapp --type=NodePort
service "mynginxapp" exposed
3. Vérifiez l’état de votre pod et de votre service:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
mynginxapp-6d64b788cc-j5crt 1/1 Running 0 4m
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 1h
mynginxapp NodePort 10.97.47.26 <none> 80:30964/TCP 1m
Vous pouvez voir que le pod et le service en cours d’exécution pour mynginxapp.
4. Voyons à quelle adresse et à quel port Minikube exécute mynginxapp:
$ Minikube service mynginxapp --URL
http://192.168.99.100:30964
Si vous accédez à l’URL renvoyée (dans ce cas, il s’agit de http://192.168.99.100:30964) sur votre navigateur, vous devriez voir le service NGINX en cours d’exécution. 5. Vérifiez à nouveau le tableau de bord:
$ Minikube dashboard
Opening kubernetes dashboard in default browser...
6. Finalement pour supprimez le service et le pod et arrêtez Minikube
$ kubectl delete service mynginxapp
service "mynginxapp" deleted
$ kubectl delete deployment mynginxapp
deployment "mynginxapp" deleted
$ Minikube stop
Stopping local Kubernetes cluster...
Machine stopped.
Conclusion :
Dans cet exemple, vous avez d’abord déployé un pod NGINX appelé mynginxapp. L’image NGINX a été téléchargée à partir de Docker Hub. Ensuite, vous avez créé un service pour prendre en charge le pod. Vous avez pu voir le service à partir du navigateur. Enfin, vous avez supprimé le pod et le service, puis arrêté Minikube.