Comment démarrer un cluster Kubernetes local avec Minikube
Agence web » Actualités du digital » Comment démarrer un cluster Kubernetes local avec Minikube

Comment démarrer un cluster Kubernetes local avec Minikube

Minikube est une distribution minimale de Kubernetes conçue pour une utilisation en développement local. Il est développé dans le cadre du projet Kubernetes et comprend des implémentations de toutes les principales fonctionnalités du cluster.

Minikube fonctionne sur les hôtes Linux, Mac et Windows. Il peut utiliser des conteneurs ou un environnement de machine virtuelle pour exécuter votre cluster et ses charges de travail. Voici tous les runtimes pris en charge :

  • Docker
  • Podman
  • KVM
  • Hyper-V
  • Hyperkit
  • Parallèles
  • VirtualBox
  • VMware

Assurez-vous que l’une de ces technologies est installée avant de poursuivre avec ce guide. Le processus d’installation de Minikube détectera automatiquement les runtimes disponibles et appliquera une configuration appropriée. Nous vous montrerons comment terminer votre déploiement et commencer à utiliser Minikube.

Installation de Minikube

Nous nous concentrons sur les systèmes Linux x86 dans ce guide. Si vous utilisez Windows, Mac ou une plate-forme CPU différente, reportez-vous à la documentation Minikube pour obtenir les informations de configuration les plus détaillées. Après la procédure d’installation initiale, l’utilisation de base de Minikube est identique sur tous les systèmes pris en charge.

Les utilisateurs de Linux peuvent choisir entre un téléchargement binaire direct ou un package Debian/RPM. Nous utiliserons le téléchargement binaire dans cet exemple.

$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube

Minikube sera maintenant installé et prêt à être utilisé.

Démarrage de votre cluster Kubernetes

Lancez votre cluster Minikube avec le minikube start commande:

$ minikube start
minikube v1.25.2 on Ubuntu 20.04
Automatically selected the docker driver. Other choices: kvm2, ssh
Starting control plane node minikube in cluster minikube
Pulling base image ...
Downloading Kubernetes v1.23.3 preload ...

Minikube téléchargera et démarrera automatiquement la dernière version de Kubernetes. Ce processus peut prendre plusieurs minutes. La sortie de la commande indiquera la progression et montrera les actions entreprises par Minikube. Dans l’exemple ci-dessus, vous pouvez voir que le pilote Docker a été sélectionné pour héberger votre cluster. Consultez la documentation du pilote de Minikube si votre plate-forme de conteneur ou votre pile de virtualisation n’est pas automatiquement détectée.

Utiliser votre cluster avec Kubectl

Minikube modifie votre environnement afin que vous puissiez vous connecter à votre cluster à l’aide d’une installation Kubectl existante. Cela ajoutera un minikube contexte à votre KUBECONFIG fichier qui cible votre cluster Minikube.

Minikube comprend également une version groupée de Kubectl à laquelle vous pouvez accéder avec le minikube kubectl commande. Ceci est utile si vous n’avez pas déjà installé Kubectl ou si votre binaire existant est une version différente de votre cluster Minikube.

# Uses the Kubectl version that's bundled with Minikube
$ minikube kubectl get pods

Pour le reste de ce guide, nous allons montrer la plaine kubectl commande et supposons qu’il cible votre cluster Minikube. Vous pouvez configurer un alias de shell pour utiliser le Kubectl fourni par Minikube sans le préfixer avec minikube chaque fois:

$ alias kubectl="minikube kubectl"

Avec Minikube live et Kubectl disponibles, vous pouvez désormais ajouter des applications à votre cluster Kubernetes :

$ kubectl create deployment nginx --image=nginx:latest
deployment.apps/nginx created
$ kubectl expose deployment nginx --type=LoadBalancer --port=80
service/nginx exposed

La minikube service La commande fournit l’URL exposée d’un service :

$ minikube service nginx --url
http://192.168.49.2:31599

Collez l’URL dans votre navigateur Web (ou exécutez la commande sans le --url flag) pour afficher votre service.

image de l'exécution d'un conteneur NGINX dans Minikube

Accéder au tableau de bord Kubernetes

Minikube fournit le tableau de bord Kubernetes en tant que fonctionnalité intégrée facultative. Exécutez le minikube dashboard pour télécharger les composants du tableau de bord et lancer l’interface dans un nouvel onglet du navigateur.

image de l'exécution du tableau de bord Kubernetes dans Minikube

Vous pouvez utiliser le tableau de bord pour gérer vos ressources et visualiser leur activité. Garder le minikube dashboard commande s’exécutant dans votre terminal pendant que vous interagissez avec le tableau de bord. Terminez la commande avec la séquence de touches Ctrl+C lorsque vous avez terminé.

Activation du registre d’images

Minikube inclut un registre d’images en tant qu’addon facultatif. Cela vous permet de stocker vos images de conteneurs dans Minikube, les rendant disponibles pour un déploiement dans votre cluster.

Activez d’abord l’addon de registre :

$ minikube addons enable registry

Marquez ensuite votre image afin qu’elle fasse référence au registre Minikube. Le registre écoute sur le port 5000 sur l’adresse IP fournie par le minikube ip commande.

$ docker tag my-image:latest $(minikube ip):5000/my-image:latest

Avant de pouvoir pousser, Docker doit être configuré pour accepter l’URL en tant que registre non sécurisé. Ajoutez-le au insecure-registries champ à l’intérieur de votre /etc/docker/daemon.json fichier afin que Docker autorise l’accès HTTP.

{
    "insecure-registries": ["192.168.49.2:5000"]
}

Remplacez l’adresse IP par celle indiquée par votre minikube ip commande. Redémarrez Docker avec le systemctl restart docker commande.

Vous pouvez maintenant envoyer votre image dans votre registre Minikube :

$ docker push $(minikube ip):5000/my-image:latest

Une dernière étape est requise avant que les pods de votre cluster puissent utiliser cette image. L’environnement d’exécution du conteneur de Minikube doit également être configuré pour autoriser un accès non sécurisé au registre. Vous pouvez l’activer en incluant le --insecure-registry drapeau quand vous courez minikube start. L’adresse IP doit faire référence à l’adresse IP par défaut du cluster de votre installation Minikube. Vous pouvez l’obtenir en exécutant kubectl get services et regardant le CLUSTER-IP pour le kubernetes service. Ensuite, arrêtez Minikube et redémarrez-le avec le drapeau supplémentaire.

$ kubectl get service
NAME              TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes        ClusterIP      10.96.0.1       <none>        443/TCP          63m

$ minikube stop
$ minikube start --insecure-registry 10.96.0.1/24

Modification de la version de Kubernetes

Minikube utilise par défaut la dernière version disponible de Kubernetes. Pour passer à une version spécifique, incluez le --kubernetes-version drapeau lorsque vous démarrez votre cluster :

$ minikube start --kubernetes-version=v1.23.0

Vous pouvez exécuter plusieurs clusters en même temps, chacun avec différentes versions de Kubernetes, en créant plusieurs profils distincts. La --profile flag sélectionne le profil à cibler pour une commande particulière.

$ minikube start --profile v1.22 --kubernetes-version=v1.22.0
$ minikube start --profile v1.23 --kubernetes-version=v1.23.0
$ minikube --profile v1.22 kubectl get pods

Utilisation de plusieurs nœuds

Minikube prend en charge plusieurs nœuds virtuels. Cela vous permet de tester la façon dont votre application évolue sur les nœuds disponibles sans déployer de nouveau matériel physique.

Cet exemple crée un cluster avec trois nœuds :

$ minikube start --nodes 3

Vous pouvez vérifier que plusieurs nœuds sont disponibles en les répertoriant avec Kubectl :

$ kubectl get nodes
NAME           STATUS   ROLES                  AGE   VERSION
minikube       Ready    control-plane,master   71m   v1.23.3
minikube-m02   Ready    <none>                 71m   v1.23.3
minikube-m03   Ready    <none>                 71m   v1.23.3

Activation de l’accès à distance

Minikube n’accepte pas le trafic entrant par défaut. Il est conçu pour une utilisation locale et n’est pas renforcé pour répondre aux demandes externes. Vous pouvez toujours activer l’accès à distance aux charges de travail dans votre cluster en modifiant l’adresse d’écoute du plan de contrôle. Ne faites cela qu’après avoir pleinement évalué les risques – votre réseau sera exposé au monde extérieur.

$ minikube start --listen-address=0.0.0.0

La redirection de port est une solution plus sûre lorsque vous devez ouvrir l’accès à un service spécifique. Utilisez Kubectl port-forward pour créer une route depuis un port hôte vers l’un de vos services :

$ kubectl port-forward service/nginx 8080:80

Vous pouvez maintenant visiter localhost:8080 pour accéder au service NGINX créé précédemment dans ce guide. Le port 8080 de votre hôte est lié au port 80 du service.

Retrait de Minikube

L’un des avantages de Minikube est sa facilité de retrait. Si vous décidez que Minikube n’est pas pour vous, lancez le delete commande pour supprimer tout ce qu’elle a ajouté à votre système :

$ minikube delete

Une option moins destructrice est minikube stop qui arrêtera votre cluster mais laissera toutes les ressources intactes. Vous pouvez redémarrer votre cluster à l’aide de minikube start commande.

Conclusion

Minikube est une distribution Kubernetes autonome qui utilise des conteneurs ou la virtualisation pour exécuter un cluster sur votre machine locale. Il est pris en charge par le projet Kubernetes en amont. Minikube est une implémentation Kubernetes complète qui regroupe le tableau de bord Kubernetes, la prise en charge de la mise en réseau, le stockage persistant et les runtimes de conteneurs interchangeables.

Vous pouvez en savoir plus sur Minikube dans la documentation officielle. Vous pouvez également commencer à utiliser les commandes Kubectl familières pour gérer votre cluster et déployer de nouvelles charges de travail. Vous disposez maintenant d’un environnement Kubernetes local entièrement fonctionnel pour créer et tester vos applications.

★★★★★