Comment exécuter un cluster Kubernetes local avec Minikube ?

Comment exécuter un cluster Kubernetes local avec Minikube ?

Minikube est une distribution minimale de Kubernetes conçue pour être utilisée dans le développement local. Il a été développé dans le cadre du projet Kubernetes et comprend des implémentations de toutes les principales fonctions 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 environnements d’exécution pris en charge :

  • Docker
  • Podman
  • KVM
  • Hyper-V
  • Hyperkit
  • parallèles
  • boîte virtuelle
  • VMware

Avant de continuer avec ce guide, assurez-vous que l’une de ces technologies est installée. Le processus d’installation de Minikube détectera automatiquement les runtimes disponibles et appliquera la configuration appropriée. Nous vous montrerons comment terminer le déploiement et commencer à utiliser Minikube.

Installation du mini cube

Dans ce guide, nous nous concentrerons sur les systèmes Linux x86. Si vous utilisez Windows, Mac ou une autre plate-forme CPU, veuillez vous référer à la documentation Minikube pour 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 direct du binaire ou un paquet Debian/RPM. Dans cet exemple, nous utiliserons un téléchargement binaire.

$ 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 d’un cluster Kubernetes

Démarrez votre cluster Minikube avec la minikube startcommande :

$ minikube start

minikube v1.25.2 sur Ubuntu 20.04

Sélection automatique du pilote docker. Autres choix : kvm2, ssh

Démarrage du nœud du plan de contrôle minikube dans le cluster minikube

tirer l’image de base. ..

Downloading Kubernetes v1.23.3 preload. ..

Minikube téléchargera et exécutera automatiquement la dernière version de Kubernetes. Ce processus peut prendre plusieurs minutes. La sortie de la commande indiquera la progression et affichera les actions prises par Minikube. Dans l’exemple ci-dessus, vous pouvez voir que le pilote Docker a été choisi pour héberger votre cluster. Reportez -vous à la documentation du pilote 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 en utilisant votre installation Kubectl existante. Cela ajoutera minikubeun contexte à votre fichier KUBECONFIGqui cible votre cluster Minikube.

Minikube comprend également une version groupée de Kubectl à laquelle vous pouvez accéder avec une minikube kubectlcommande. Ceci est utile si vous n’avez pas encore installé Kubectl ou si votre binaire existant diffère de la version de votre cluster Minikube.

# Uses the Kubectl version that's bundled with Minikube

$ minikube kubectl get pods

Pour le reste de ce didacticiel, nous allons montrer une commande simple kubectlet supposer qu’elle cible votre cluster Minikube. Vous pouvez configurer un alias de shell pour utiliser le Kubectl lié à Minikube sans préfixe à minikubechaque fois :

$ alias kubectl="minikube kubectl"

Maintenant que Minikube live et Kubectl sont disponibles, vous pouvez ajouter des applications à votre cluster Kubernetes :

$ kubectl create deployment nginx --image=nginx:latest

déploiement.apps/nginx créé

$ kubectl expose deployment nginx --type=LoadBalancer --port=80

service/nginx exposed

La commande minikube servicefournit l’URL publique du service :

$ minikube service nginx --url

http://192.168.49.2:31599

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

Accéder au panneau de configuration Kubernetes

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

Vous pouvez utiliser le tableau de bord pour gérer vos ressources et visualiser leur activité. Gardez minikube dashboardla commande dans le terminal pendant que vous interagissez avec le panneau de contrôle. Lorsque vous avez terminé, terminez la commande avec Ctrl+C.

Activation du registre d’images

Minikube inclut un registre d’images en option. Cela vous permet de stocker des images de conteneurs dans Minikube, les rendant disponibles pour un déploiement dans votre cluster.

Activez d’abord le module complémentaire de registre :

$ minikube addons enable registry

Marquez ensuite votre image pour qu’elle pointe vers le registre Minikube. Le registre écoute sur le port 5000 sur l’adresse IP fournie minikube ippar la commande.

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

Avant de pouvoir soumettre, Docker doit être configuré pour accepter l’URL en tant que registre non sécurisé. Ajoutez-le à une insecure-registriesboîte à l’intérieur de votre /etc/docker/daemon.jsonfichier pour que Docker autorise l’accès HTTP.

Remplacez l’adresse IP par celle spécifiée dans votre minikube ipcommande. Redémarrez Docker avec la systemctl restart dockercommande.

Vous pouvez maintenant soumettre votre image au registre Minikube :

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

Avant que les modules de votre cluster puissent utiliser cette image, une dernière étape doit être effectuée. L’environnement d’exécution du conteneur Minikube doit également être configuré pour autoriser l’accès au registre non sécurisé. Vous pouvez l’activer en activant --insecure-registryl’indicateur de démarrage minikube start. L’adresse IP doit être relative à l’adresse IP du cluster par défaut de votre installation Minikube. Vous pouvez l’obtenir en exécutant kubectl get serviceset en regardant le CLUSTER-IPservice kubernetes. Ensuite, arrêtez Minikube et redémarrez-le avec un drapeau supplémentaire.

$ kubectl get service

NOM TYPE IP DU CLUSTER PORT(S) IP EXTERNE ÂGE

kubernetes ClusterIP 10.96.0.1 <aucun> 443/TCP 63m

$ minikube stop

$ minikube start --insecure-registry 10.96.0.1/24

Modification de la version de Kubernetes

Minikube utilise la dernière version de Kubernetes disponible par défaut. Pour passer à une version spécifique, activez --kubernetes-versionle drapeau au démarrage du 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. Le drapeau --profilesélectionne le profil cible 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 mise à l’échelle de votre application 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 listant avec Kubectl :

$ kubectl get nodes

NOM STATUT RÔLES ÂGE 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

Activer l’accès à distance

Minikube n’accepte pas le trafic entrant par défaut. Il est destiné à un usage local et n’est pas conçu pour répondre à des demandes externes. Vous pouvez toujours activer l’accès à distance aux charges de travail sur votre cluster en modifiant l’adresse d’écoute du plan de contrôle. Ne le faites qu’après une évaluation complète des risques – votre réseau sera ouvert au monde extérieur.

$ minikube start --listen-address=0.0.0.0

La redirection de port est une solution plus sécurisée lorsque vous devez ouvrir l’accès à un service spécifique. Utilisez la commande Kubectl port-forwardpour créer une route entre un port hôte et l’un de vos services :

$ kubectl port-forward service/nginx 8080:80

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

Supprimer un minicube

L’un des avantages de Minikube est qu’il est facile à désinstaller. Si vous décidez que Minikube n’est pas pour vous, exécutez deletela commande pour supprimer tout ce qu’il a ajouté à votre système :

$ minikube delete

Une option moins destructrice consiste minikube stopà arrêter votre cluster, mais sans toucher à toutes les ressources. Vous pouvez redémarrer votre cluster avec la minikube startcommande.

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 maintenu par le projet Kubernetes en amont. Minikube est une implémentation complète de Kubernetes qui comprend le tableau de bord Kubernetes, la prise en charge du 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *