Image showing Travailler avec Kubernetes avec Minikube

Travailler avec Kubernetes avec Minikube

affiliate best offer

Installer Kubernetes avec Minikube

Minikube est un outil qui facilite l’exécution locale de Kubernetes. Minikube exécute un cluster Kubernetes à nœud unique à l’intérieur d’une machine virtuelle (VM) sur votre ordinateur portable pour les utilisateurs qui souhaitent essayer Kubernetes ou développer avec lui au jour le jour.

Fonctionnalités Minikube

Minikube prend en charge les fonctionnalités Kubernetes suivantes :

-DNS - NodePorts

  • ConfigMaps et Secrets
  • Tableaux de bord - Exécution du conteneur : Docker, CRI-O et containerd
  • Activation de CNI (Container Network Interface)
  • Entrée Installation

Voir Installation de Minikube.

Démarrage rapide

Cette brève démo vous explique comment démarrer, utiliser et supprimer Minikube localement. Suivez les étapes ci-dessous pour démarrer et explorer Minikube.

  1. Démarrez Minikube et créez un cluster :

minikube start La sortie ressemble à ceci :

Démarrage du cluster Kubernetes local… Exécution des vérifications préalables à la création… Création de la machine… Démarrage du cluster Kubernetes local… Pour plus d’informations sur le démarrage de votre cluster sur une version spécifique de Kubernetes, une machine virtuelle ou un environnement d’exécution de conteneur, consultez Démarrage d’un Cluster.

  1. Vous pouvez maintenant interagir avec votre cluster à l’aide de kubectl. Pour plus d’informations, consultez Interacting with Your Cluster.

Créons un déploiement Kubernetes à l’aide d’une image existante nommée echoserver, qui est un simple serveur HTTP et exposons-le sur le port 8080 en utilisant –port.

kubectl create deployment hello-minikube –image=k8s.gcr.io/echoserver:1.10 Le résultat ressemble à ceci :

deployment.apps/hello-minikube créé 3. Pour accéder au déploiement hello-minikube, exposez-le en tant que service :

kubectl expose déploiement hello-minikube –type=NodePort –port=8080 L’option –type=NodePort spécifie le type du service.

La sortie est similaire à ceci :

service/hello-minikube expose 4. Le pod hello-minikube est maintenant lancé mais vous devez attendre que le pod soit opérationnel avant d’y accéder via le service exposé.

Vérifiez si le pod est opérationnel :

kubectl get pod Si la sortie affiche le STATUS comme ContainerCreating, le Pod est toujours en cours de création :

NOM READY STATUS RESTARTS AGE hello-minikube-3383150820-vctvh 0/1 ContainerCreating 0 3s Si la sortie indique STATUS Running, le pod est maintenant opérationnel :

NOM READY STATUS RESTARTS AGE hello-minikube-3383150820-vctvh 1/1 Running 0 13s 5. Obtenez l’URL du service exposé pour afficher les détails du service :

service minikube hello-minikube –url 6. Pour afficher les détails de votre cluster local, copiez et collez l’URL que vous avez obtenue en sortie, sur votre navigateur.

La sortie est similaire à ceci :

Nom d’hôte : hello-minikube-7c77b68cff-8wdzq Informations sur le pod : -aucune information sur le pod disponible- Valeurs du serveur : server_version=nginx : 1.13.3 - lua : 10008 Informations sur la requête : client_address=172.17.0.1 method=GET real path=/ query= request_version =1.1 request_scheme=http request_uri=http://192.168.99.100:8080/ En-têtes de requête : accept=/ host=192.168.99.100:30674 user-agent=curl/7.47.0 Corps de la requête : -aucun corps dans la requête- Si vous ne souhaitez plus que le service et le cluster s’exécutent, vous pouvez les supprimer.

  1. Supprimez le service hello-minikube :

kubectl delete services hello-minikube Le résultat ressemble à ceci :

service “hello-minikube” supprimé 8. Supprimez le déploiement hello-minikube :

kubectl delete deployment hello-minikube Le résultat ressemble à ceci :

deployment.extensions “hello-minikube” supprimé 9. Arrêtez le cluster Minikube local :

minikube stop La sortie ressemble à ceci :

Arrêt de “minikube”… “minikube” s’est arrêté. Pour plus d’informations, consultez Arrêter un cluster.

  1. Supprimez le cluster Minikube local :

minikube delete La sortie ressemble à ceci :

Suppression de “minikube” … Le cluster “minikube” a été supprimé. Pour plus d’informations, consultez Supprimer un cluster.

Gérer votre cluster

Démarrage d’un cluster

La commande minikube start peut être utilisée pour démarrer votre cluster. Cette commande crée et configure une machine virtuelle qui exécute un cluster Kubernetes à nœud unique. Cette commande configure également votre installation kubectl pour communiquer avec ce cluster.

Remarque :Si vous êtes derrière un proxy Web, vous devez transmettre ces informations à la commande minikube start :

https_proxy= minikube start --docker-env http_proxy= --docker-env https_proxy= --docker-env no_proxy=192.168.99.0/24 Malheureusement, définir les variables d'environnement seules ne marche pas.

Minikube crée également un contexte “minikube” et le définit par défaut dans kubectl. Pour revenir à ce contexte, exécutez cette commande : kubectl config use-context minikube.

Spécifier la version de Kubernetes

Vous pouvez spécifier la version de Kubernetes pour Minikube à utiliser en ajoutant la chaîne –kubernetes-version à la commande minikube start. Par exemple, pour exécuter la version v1.18.0, vous devez exécuter ce qui suit :

minikube start –kubernetes-version v1.18.0 #### Spécification du pilote VM

Vous pouvez modifier le pilote VM en ajoutant l’indicateur –driver= au démarrage de minikube. Par exemple, la commande serait.

minikube start –driver= Minikube prend en charge les pilotes suivants :

Remarque : Voir DRIVERS pour plus de détails sur les pilotes pris en charge et comment installer les plugins.* docker ([installation du pilote] (https://minikube.sigs.k8s.io/docs/drivers/docker/))

Attention : Si vous utilisez le pilote none, certains composants Kubernetes s’exécutent en tant que conteneurs privilégiés qui ont des effets secondaires en dehors de l’environnement Minikube. Ces effets secondaires signifient que le pilote none n’est pas recommandé pour les postes de travail personnels.

Vous pouvez démarrer Minikube sur les environnements d’exécution de conteneur suivants.

minikube start \ –network-plugin=cni \ –enable-default-cni \ –container-runtime=containerd \ –bootstrapper=kubeadm Ou vous pouvez utiliser la version étendue :

minikube start \ –network-plugin=cni \ –enable-default-cni \ –extra-config=kubelet.container-runtime=remote \ –extra-config=kubelet.container-runtime-endpoint=unix:/ //run/containerd/containerd.sock \ –extra-config=kubelet.image-service-endpoint=unix:///run/containerd/containerd.sock \ –bootstrapper=kubeadm Pour utiliser CRI-O en tant qu’environnement d’exécution du conteneur, exécutez :

minikube start \ –network-plugin=cni \ –enable-default-cni \ –container-runtime=cri-o \ –bootstrapper=kubeadm Ou vous pouvez utiliser la version étendue :

minikube start \ –network-plugin=cni \ –enable-default-cni \ –extra-config=kubelet.container-runtime=remote \ –extra-config=kubelet.container-runtime-endpoint=/var/ run/crio.sock \ –extra-config=kubelet.image-service-endpoint=/var/run/crio.sock \ –bootstrapper=kubeadm $(function(){$(“#container-runtimes”). tabs();});#### Utiliser des images locales en réutilisant le démon Docker

Lorsque vous utilisez une seule machine virtuelle pour Kubernetes, il est utile de réutiliser le démon Docker intégré de Minikube. La réutilisation du démon intégré signifie que vous n’avez pas besoin de créer un registre Docker sur votre machine hôte et d’y insérer l’image. Au lieu de cela, vous pouvez construire à l’intérieur du même démon Docker que Minikube, ce qui accélère les expériences locales.

Remarque : Assurez-vous de baliser votre image Docker avec autre chose que la plus récente et utilisez cette balise pour extraire l’image. Étant donné que :latest est la valeur par défaut, avec une stratégie d’extraction d’image par défaut correspondante de Toujours, une erreur d’extraction d’image (ErrImagePull) se produit éventuellement si vous n’avez pas l’image Docker dans le registre Docker par défaut (généralement DockerHub). Pour travailler avec le Docker démon sur votre hôte Mac/Linux, exécutez la dernière ligne de minikube docker-env.

Vous pouvez maintenant utiliser Docker sur la ligne de commande de votre machine Mac/Linux hôte pour communiquer avec le démon Docker à l’intérieur de la VM Minikube :

docker ps

Remarque :Sur Centos 7, Docker peut signaler l’erreur suivante :

Impossible de lire le certificat CA “/etc/docker/ca.pem”: ouvrez /etc/docker/ca.pem : aucun fichier ou répertoire de ce type Vous pouvez résoudre ce problème en mettant à jour /etc/sysconfig/docker pour vous assurer que l’environnement de Minikube change sont respectés :

< DOCKER_CERT_PATH=/etc/docker — > if [ -z “${DOCKER_CERT_PATH}” ] ; then > DOCKER_CERT_PATH=/etc/docker > fi ### Configuration de Kubernetes

Minikube dispose d’une fonction “configurateur” qui permet aux utilisateurs de configurer les composants Kubernetes avec des valeurs arbitraires. Pour utiliser cette fonctionnalité, vous pouvez utiliser le –extra-indicateur de configuration sur la commande de démarrage de minikube.

Cet indicateur est répété, vous pouvez donc le passer plusieurs fois avec plusieurs valeurs différentes pour définir plusieurs options.

Cet indicateur prend une chaîne de la forme component.key=value, où component est l’une des chaînes de la liste ci-dessous, key est une valeur sur la structure de configuration et value est la valeur à définir.

Des clés valides peuvent être trouvées en examinant la documentation des configurations de composants Kubernetes pour chaque composant. Voici la documentation de chaque configuration prise en charge :

Exemples

Pour modifier le paramètre MaxPods sur 5 sur le Kubelet, transmettez cet indicateur : –extra-config=kubelet.MaxPods=5.

Cette fonctionnalité prend également en charge les structures imbriquées. Pour modifier le paramètre LeaderElection.LeaderElect sur true sur le planificateur, transmettez cet indicateur : –extra-config=scheduler.LeaderElection.LeaderElect=true.

Pour définir AuthorizationMode sur l’apiserver sur RBAC, vous pouvez utiliser : –extra-config=apiserver.authorization-mode=RBAC.

Arrêt d’un cluster

La commande minikube stop peut être utilisée pour arrêter votre cluster. Cette commande arrête la machine virtuelle Minikube, mais préserve tout l’état et les données du cluster. Redémarrer le cluster le restaurera à son état précédent.

Suppression d’un cluster

La commande minikube delete peut être utilisée pour supprimer votre cluster. Cette commande arrête et supprime la machine virtuelle Minikube. Aucune donnée ou état n’est conservé.

Mise à niveau de Minikube

Si vous utilisez macOS et que Brew Package Manager est installé, exécutez :

brew update brew upgrade minikube Interacting with Your Cluster

Kubectl

La commande minikube start crée un contexte kubectl appelé “minikube”. Ce contexte contient la configuration pour communiquer avec votre cluster Minikube.

Minikube définit automatiquement ce contexte par défaut, mais si vous devez y revenir ultérieurement, exécutez :

kubectl config use-context minikube

Ou passez le contexte sur chaque commande comme ceci :

kubectl get pods –context=minikube

Tableau de bord

Pour accéder au tableau de bord Kubernetes, exécutez cette commande dans un shell après avoir démarré Minikube pour obtenir l’adresse :

minikube dashboard ### Services[ ](#services)

Pour accéder à un service exposé via un port de nœud, exécutez cette commande dans un shell après avoir démarré Minikube pour obtenir l’adresse :

## minikube service [-n NAMESPACE] [--url] NAME Networking[ ](#networking)

La machine virtuelle Minikube est exposée au système hôte via une adresse IP réservée à l’hôte, qui peut être obtenue avec la commande minikube ip. Tous les services de type NodePort sont accessibles via cette adresse IP, sur le NodePort.

Pour déterminer le NodePort de votre service, vous pouvez utiliser une commande kubectl comme celle-ci :

kubectl get service $SERVICE --output='jsonpath="{.spec.ports[0].nodePort}"'

Volumes persistants

Minikube prend en charge les PersistentVolumes de type hostPath. Ces PersistentVolumes sont mappés à un répertoire à l’intérieur de la machine virtuelle Minikube.

La machine virtuelle Minikube démarre dans un tmpfs, de sorte que la plupart des répertoires ne seront pas conservés lors des redémarrages (arrêt minikube). Cependant, Minikube est configuré pour conserver les fichiers stockés sous les répertoires hôtes suivants :

  • /Les données
  • /var/lib/minikube
  • /var/lib/docker Voici un exemple de configuration PersistentVolume pour conserver les données dans le répertoire /data :

apiVersion : v1 kind : PersistentVolume metadata : name : pv0001 spec : accessModes : - ReadWriteOnce capacity : stockage : 5Gi hostPath : chemin : /data/pv0001/ Mounted Host Folders

Certains pilotes monteront un dossier hôte dans la VM afin que vous puissiez facilement partager des fichiers entre la VM et l’hôte. Ceux-ci ne sont pas configurables pour le moment et différents pour le pilote et le système d’exploitation que vous utilisez.

Remarque : Le partage de dossier hôte n’est pas encore implémenté dans le pilote KVM. Registres


Pour accéder à un registre de conteneurs privé, suivez les étapes sur cette page.

Nous vous recommandons d’utiliser ImagePullSecrets, mais si vous souhaitez configurer l’accès sur la VM Minikube, vous pouvez placer le .dockercfg dans le répertoire /home/docker ou le config.json dans le répertoire /home/docker/.docker.

Modules complémentaires

Afin que Minikube démarre ou redémarre correctement les addons personnalisés, placez les addons que vous souhaitez lancer avec Minikube dans le répertoire ~/.minikube/addons. Les modules complémentaires de ce dossier seront déplacés vers la machine virtuelle Minikube et lancés à chaque démarrage ou redémarrage de Minikube.

Utilisation de Minikube avec un proxy HTTP

Minikube crée une machine virtuelle qui inclut Kubernetes et un démon Docker. Lorsque Kubernetes tente de planifier des conteneurs à l’aide de Docker, le démon Docker peut nécessiter un accès réseau externe pour extraire les conteneurs.

Si vous êtes derrière un proxy HTTP, vous devrez peut-être fournir à Docker les paramètres de proxy. Pour ce faire, transmettez les variables d’environnement requises en tant qu’indicateurs lors du démarrage de minikube.

Par exemple:

minikube start –docker-env http_proxy=http://$YOURPROXY:PORT \ –docker-env https_proxy=https://$YOURPROXY:PORT Si l’adresse de votre machine virtuelle est 192.168.99.100, il y a de fortes chances que votre proxy les paramètres empêcheront kubectl de l’atteindre directement. Pour contourner la configuration du proxy pour cette adresse IP, vous devez modifier vos paramètres no_proxy. Vous pouvez le faire avec :

export no_proxy=$no_proxy,$(minikube ip) Problèmes connus

Les fonctionnalités qui nécessitent plusieurs nœuds ne fonctionneront pas dans Minikube.

Conception

Minikube utilise libmachine pour provisionner les machines virtuelles et kubeadm pour provisionner un cluster Kubernetes .

Pour plus d’informations sur Minikube, consultez la proposition.

## Liens supplémentaires

  • Objectifs et non-objectifs : pour les objectifs et les non-objectifs du projet Minikube, veuillez consulter notre feuille de route.
  • Guide de développement : voir Contribuer pour un aperçu de la façon d’envoyer des pull requests.
  • Construire Minikube : pour obtenir des instructions sur la façon de construire/tester Minikube à partir de la source, consultez le guide de construction.
  • Ajout d’une nouvelle dépendance : pour savoir comment ajouter une nouvelle dépendance à Minikube, consultez le guide d’ajout de dépendances.
  • Ajout d’un nouvel addon : pour savoir comment ajouter un nouvel addon pour Minikube, consultez le guide d’ajout d’un addon . - MicroK8s : les utilisateurs de Linux qui souhaitent éviter d’exécuter une machine virtuelle peuvent envisager MicroK8s comme alternative. Communauté

Les contributions, questions et commentaires sont les bienvenus et encouragés ! Les développeurs de Minikube traînent sur Slack dans le canal #minikube (obtenez une invitation ici). Nous avons également la liste de diffusion Google Groups kubernetes-dev. Si vous postez sur la liste, veuillez préfixer votre sujet avec “minikube : “.

Retour d’information

Cette page vous a été utile?

Oui NonMerci pour les commentaires. Si vous avez une question précise sur l’utilisation de Kubernetes, posez-la sur Stack Overflow. Ouvrez un problème dans le dépôt GitHub si vous souhaitez signaler un problème ou suggérer une amélioration.

You might also like these blog posts

Full Bright

Full Bright

A professional and sympathic business man.

Contact

Contact Us

To order one of our services, navigate to the order service page

Address

10 rue de Penthièvre,
75008 Paris

Email Us

hello at bright-softwares dot com

Open Hours

Monday - Friday
9:00AM - 05:00PM