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 start
commande :
$ 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 minikube
un contexte à votre fichier KUBECONFIG
qui cible votre cluster Minikube.
Minikube comprend également une version groupée de Kubectl à laquelle vous pouvez accéder avec une minikube kubectl
commande. 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 kubectl
et supposer qu’elle cible votre cluster Minikube. Vous pouvez configurer un alias de shell pour utiliser le Kubectl lié à Minikube sans préfixe à minikube
chaque 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 service
fournit 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 --url
indicateur) 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 dashboard
la 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 dashboard
la 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 ip
par 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-registries
boîte à l’intérieur de votre /etc/docker/daemon.json
fichier pour que Docker autorise l’accès HTTP.
Remplacez l’adresse IP par celle spécifiée dans votre minikube ip
commande. Redémarrez Docker avec la systemctl restart docker
commande.
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-registry
l’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 services
et en regardant le CLUSTER-IP
service 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-version
le 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 --profile
sé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-forward
pour 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:8080
pour 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 delete
la 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 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 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