2019-02-13 17:29:21 +00:00
---
2019-04-12 05:32:45 +00:00
title: Hello Minikube
2020-05-30 19:36:51 +00:00
content_type: tutorial
2019-04-12 05:32:45 +00:00
weight: 5
2019-04-16 08:31:08 +00:00
description: Tutoriel Minikube
2019-04-12 05:32:45 +00:00
menu:
main:
title: "Démarrer"
weight: 10
post: >
2019-06-11 03:02:21 +00:00
< p > Prêt à mettre les mains dans le cambouis ? Créez un cluster Kubernetes simple qui exécute "Hello World" avec Node.js.< / p > >.
2019-10-10 09:02:53 +00:00
card:
2019-06-06 06:48:12 +00:00
name: tutorials
2019-04-12 05:32:45 +00:00
weight: 10
2019-02-13 17:29:21 +00:00
---
2020-05-30 19:36:51 +00:00
<!-- overview -->
2019-02-13 17:29:21 +00:00
2019-12-25 14:23:29 +00:00
Ce tutoriel vous montre comment exécuter une simple application Hello World Node.js sur Kubernetes en utilisant [Minikube ](/docs/getting-started-guides/minikube/ ) et Katacoda.
2019-02-13 17:29:21 +00:00
Katacoda fournit un environnement Kubernetes gratuit dans le navigateur.
{{< note > }}
Vous pouvez également suivre ce tutoriel si vous avez installé [Minikube localement ](/docs/tasks/tools/install-minikube/ ).
{{< / note > }}
2020-05-30 19:36:51 +00:00
## {{% heading "objectives" %}}
2019-02-13 17:29:21 +00:00
* Déployez une application Hello World sur Minikube.
* Lancez l'application.
* Afficher les journaux des applications.
2020-05-30 19:36:51 +00:00
## {{% heading "prerequisites" %}}
2019-02-13 17:29:21 +00:00
Ce tutoriel fournit une image de conteneur construite à partir des fichiers suivants :
{{< codenew language = "js" file = "minikube/server.js" > }}
{{< codenew language = "conf" file = "minikube/Dockerfile" > }}
2019-06-07 08:51:58 +00:00
Pour plus d'informations sur la commande `docker build` , lisez la documentation de [Docker ](https://docs.docker.com/engine/reference/commandline/build/ ).
2019-02-13 17:29:21 +00:00
2020-05-30 19:36:51 +00:00
<!-- lessoncontent -->
2019-02-13 17:29:21 +00:00
## Créer un cluster Minikube
1. Cliquez sur **Lancer le terminal** .
{{< kat-button > }}
{{< note > }} Si vous avez installé Minikube localement, lancez `minikube start` . {{< / note > }}
2. Ouvrez le tableau de bord Kubernetes dans un navigateur :
```shell
minikube dashboard
```
3. Environnement Katacoda seulement : En haut du volet du terminal, cliquez sur le signe plus, puis cliquez sur **Sélectionner le port pour afficher sur l'hôte 1** .
4. Environnement Katacoda seulement : Tapez `30000` , puis cliquez sur **Afficher le port** .
## Créer un déploiement
2020-01-01 09:45:39 +00:00
Un [*Pod* ](/fr/docs/concepts/workloads/pods/pod/ ) Kubernetes est un groupe d'un ou plusieurs conteneurs, liés entre eux à des fins d'administration et de mise en réseau.
2019-02-13 17:29:21 +00:00
Dans ce tutoriel, le Pod n'a qu'un seul conteneur.
2019-06-07 08:51:58 +00:00
Un [*Déploiement* ](/docs/concepts/workloads/controllers/deployment/ ) Kubernetes vérifie l'état de santé de votre Pod et redémarre le conteneur du Pod s'il se termine.
2019-02-13 17:29:21 +00:00
Les déploiements sont le moyen recommandé pour gérer la création et la mise à l'échelle des Pods.
1. Utilisez la commande `kubectl create` pour créer un déploiement qui gère un Pod. Le
Pod utilise un conteneur basé sur l'image Docker fournie.
```shell
2020-04-27 16:51:31 +00:00
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
2019-02-13 17:29:21 +00:00
```
2. Affichez le déploiement :
```shell
2019-03-28 09:02:43 +00:00
kubectl get deployments
2019-02-13 17:29:21 +00:00
```
Sortie :
```shell
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
hello-node 1 1 1 1 1m
```
3. Voir le Pod :
```shell
kubectl get pods
```
Sortie :
```shell
NAME READY STATUS RESTARTS AGE
hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m
```
4. Afficher les événements du cluster :
```shell
kubectl get events
```
5. Voir la configuration de `kubectl` :
```shell
kubectl config view
```
{{< note > }}Pour plus d'informations sur les commandes `kubectl` , voir la [vue d'ensemble de kubectl ](/docs/user-guide/kubectl-overview/ ) {{< / note > }}.
## Créer un service
2019-06-11 03:02:21 +00:00
Par défaut, le Pod n'est accessible que par son adresse IP interne dans le cluster Kubernetes.
Pour rendre le conteneur `hello-node` accessible depuis l'extérieur du réseau virtuel Kubernetes, vous devez exposer le Pod comme un [*Service* ](/docs/concepts/services-networking/service/ ) Kubernetes.
2019-02-13 17:29:21 +00:00
2019-06-11 03:02:21 +00:00
1. Exposez le Pod à internet en utilisant la commande `kubectl expose` :
2019-02-13 17:29:21 +00:00
```shell
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
```
L'indicateur `--type=LoadBalancer` indique que vous voulez exposer votre Service
à l'extérieur du cluster.
2. Affichez le Service que vous venez de créer :
```shell
kubectl get services
```
Sortie :
```shell
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.108.144.78 < pending > 8080:30369/TCP 21s
kubernetes ClusterIP 10.96.0.1 < none > 443/TCP 23m
```
Sur les fournisseurs de cloud qui supportent les load balancers, une adresse IP externe serait fournie pour accéder au Service.
Sur Minikube, le type `LoadBalancer` rend le Service accessible via la commande `minikube service` .
3. Exécutez la commande suivante :
```shell
2019-06-11 03:02:21 +00:00
minikube service hello-node
2019-02-13 17:29:21 +00:00
```
4. Environnement Katacoda seulement : Cliquez sur le signe plus, puis cliquez sur **Sélectionner le port pour afficher sur l'hôte 1** .
5. Environnement Katacoda seulement : Tapez `30369` (voir port en face de `8080` dans la sortie services), puis cliquez sur **Afficher le port** .
Cela ouvre une fenêtre de navigateur qui sert votre application et affiche le message `Hello World` .
2019-06-11 03:02:21 +00:00
## Activer les extensions
2019-02-13 17:29:21 +00:00
2019-06-11 03:02:21 +00:00
Minikube dispose d'un ensemble d'extensions intégrées qui peuvent être activées, désactivées et ouvertes dans l'environnement Kubernetes local.
2019-02-13 17:29:21 +00:00
2019-06-11 03:02:21 +00:00
1. Énumérer les extensions actuellement pris en charge :
2019-02-13 17:29:21 +00:00
```shell
minikube addons list
```
Sortie:
```
addon-manager: enabled
coredns: disabled
dashboard: enabled
default-storageclass: enabled
efk: disabled
freshpod: disabled
heapster: disabled
ingress: disabled
kube-dns: enabled
metrics-server: disabled
nvidia-driver-installer: disabled
nvidia-gpu-device-plugin: disabled
registry: disabled
registry-creds: disabled
storage-provisioner: enabled
```
2019-06-11 03:02:21 +00:00
2. Activez une extension, par exemple, `heapster` :
2019-02-13 17:29:21 +00:00
```shell
minikube addons enable heapster
```
Sortie :
```shell
heapster was successfully enabled
```
3. Affichez le pod et le service que vous venez de créer :
```shell
kubectl get pod,svc -n kube-system
```
Sortie :
```shell
NAME READY STATUS RESTARTS AGE
pod/heapster-9jttx 1/1 Running 0 26s
pod/influxdb-grafana-b29w8 2/2 Running 0 26s
pod/kube-addon-manager-minikube 1/1 Running 0 34m
pod/kube-dns-6dcb57bcc8-gv7mw 3/3 Running 0 34m
pod/kubernetes-dashboard-5498ccf677-cgspw 1/1 Running 0 34m
pod/storage-provisioner 1/1 Running 0 34m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/heapster ClusterIP 10.96.241.45 < none > 80/TCP 26s
service/kube-dns ClusterIP 10.96.0.10 < none > 53/UDP,53/TCP 34m
service/kubernetes-dashboard NodePort 10.109.29.1 < none > 80:30000/TCP 34m
service/monitoring-grafana NodePort 10.99.24.54 < none > 80:30002/TCP 26s
service/monitoring-influxdb ClusterIP 10.111.169.94 < none > 8083/TCP,8086/TCP 26s
```
4. Désactivez `heapster` :
```shell
minikube addons disable heapster
```
Sortie :
```shell
heapster was successfully disabled
```
## Nettoyage
Vous pouvez maintenant nettoyer les ressources que vous avez créées dans votre cluster :
```shell
kubectl delete service hello-node
kubectl delete deployment hello-node
```
Si nécessaire, arrêtez la machine virtuelle Minikube (VM) :
```shell
minikube stop
```
2019-06-11 03:02:21 +00:00
Si nécessaire, effacez la VM Minikube :
2019-02-13 17:29:21 +00:00
```shell
minikube delete
```
2020-05-30 19:36:51 +00:00
## {{% heading "whatsnext" %}}
2019-02-13 17:29:21 +00:00
* En savoir plus sur les [déploiement ](/docs/concepts/workloads/controllers/deployment/ ).
* En savoir plus sur le [Déploiement d'applications ](/docs/user-guide/deploying-applications/ ).
* En savoir plus sur les [Services ](/docs/concepts/services-networking/service/ ).
2020-05-30 19:36:51 +00:00