Question: <!-- overview --> <del> 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. 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 >}} </del> <ins> Ce tutoriel vous montre comment exécuter une application exemple sur Kubernetes en utilisant minikube. Le tutoriel fournit une image de conteneur qui utilise NGINX pour renvoyer toutes les requêtes. ## {{% heading "objectifs" %}} </ins> <del> ## {{% heading "objectives" %}} </del> <ins> * Déployer une application exemple sur minikube. * Exécuter l'application. * Afficher les journaux de l'application. ## {{% heading "prérequis²" %}} </ins> <del> * Déployez une application Hello World sur Minikube. * Lancez l'application. * Afficher les journaux des applications. </del> <ins> Ce tutoriel suppose que vous avez déjà configuré `minikube`. Voir __Étape 1__ dans [minikube start](https://minikube.pour les instructions d'installation installation instructions. {{< note >}} Exécutez uniquement les instructions de l'__Étape 1, Installation__. Le reste est couvert sur cette page. {{< /note >}} Vous devez également installer `kubectl`. Voir [Installer les outils](/docs/tasks/tools/#kubectl) pour les instructions d'installation. </ins> <del> ## {{% heading "prerequisites" %}} </del> <ins> <!-- lessoncontent --> </ins> <del> Ce tutoriel fournit une image de conteneur construite à partir des fichiers suivants : </del> <ins> ## Créer un cluster minikube </ins> <del> {{% codenew language="js" file="minikube/server.js" %}} </del> <ins> ```shell minikube start ``` </ins> <del> {{% codenew language="conf" file="minikube/Dockerfile" %}} </del> <ins> ## Ouvrir le Tableau de bord </ins> <del> Pour plus d'informations sur la commande `docker build`, lisez la documentation de [Docker](https://docs.docker.com/engine/reference/commandline/build/). </del> <ins> Ouvrez le tableau de bord Kubernetes. Vous pouvez le faire de deux façons différentes : {{< tabs name="dashboard" >}} {{% tab name="Launch a browser" %}} Ouvrez un **nouveau** terminal, et exécutez: ```shell # Démarrez un nouveau terminal et laissez-le en cours d'exécution.. minikube dashboard ``` Maintenant, revenez au terminal où vous avez exécuté `minikube start`. </ins> <del> <!-- lessoncontent --> </del> <ins> {{< note >}} La commande `dashboard` active l'extension du tableau de bord et ouvre le proxy dans le navigateur par défaut. Vous pouvez créer des ressources Kubernetes sur le tableau de bord, telles que Deployment et Service. </ins> <del> ## Créer un cluster Minikube </del> <ins> Pour savoir comment éviter d'invoquer directement le navigateur à partir du terminal et obtenir une URL pour le tableau de bord Web, consultez l'onglet "Copier et coller l'URL". </ins> <del> 1. Cliquez sur **Lancer le terminal**. </del> <ins> Par défaut, le tableau de bord n'est accessible que depuis le réseau virtuel interne de Kubernetes. La commande `dashboard` crée un proxy temporaire pour rendre le tableau de bord accessible depuis l'extérieur du réseau virtuel Kubernetes. </ins> <del> {{< kat-button >}} </del> <ins> Pour arrêter le proxy, exécutez `Ctrl+C` pour quitter le processus. Une fois la commande terminée, le tableau de bord reste en cours d'exécution dans le cluster Kubernetes. Vous pouvez exécuter à nouveau la commande `dashboard` pour créer un autre proxy pour accéder au tableau de bord. {{< /note >}} </ins> <del> {{< note >}} Si vous avez installé Minikube localement, lancez `minikube start`. {{< /note >}} </del> <ins> {{% /tab %}} {{% tab name="Copier et coller l'URL" %}} </ins> <del> 2. Ouvrez le tableau de bord Kubernetes dans un navigateur : </del> <ins> Si vous ne souhaitez pas que minikube ouvre un navigateur pour vous, exécutez la sous-commande `dashboard` avec le drapeau `--url`. `minikube` affiche une URL que vous pouvez ouvrir dans le navigateur de votre choix. </ins> <del> ```shell minikube dashboard ``` </del> <ins> Ouvrez un **nouveau** terminal et exécutez: ```shell # Démarrez un nouveau terminal et laissez-le en cours d'exécution. minikube dashboard --url ``` </ins> <del> 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**. </del> <ins> Maintenant, vous pouvez utiliser cette URL et revenir au terminal où vous avez exécuté `minikube start`. </ins> <del> 4. Environnement Katacoda seulement : Tapez `30000`, puis cliquez sur **Afficher le port**. </del> <ins> {{% /tab %}} {{< /tabs >}} </ins> <del> ## Créer un déploiement </del> <ins> ## Créer un Deployment </ins> <del> 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. Dans ce tutoriel, le Pod n'a qu'un seul conteneur. 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. Les déploiements sont le moyen recommandé pour gérer la création et la mise à l'échelle des Pods. </del> <ins> Un [*Pod*](/docs/concepts/workloads/pods/) Kubernetes est un groupe de un ou plusieurs conteneurs, liés ensemble pour les besoins de l'administration et du réseau. Le Pod de ce tutoriel n'a qu'un seul conteneur. Un [*Deployment*](/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. Les Deployments sont la méthode recommandée pour gérer la création et la mise à l'échelle des Pods. </ins> <del> 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. </del> <ins> 1. Utilisez la commande `kubectl` create pour créer un Deployment qui gère un Pod. Le Pod exécute un conteneur basé sur l'image Docker fournie. </ins> ```shell <del> kubectl create deployment hello-node --image=registry.k8s.io/echoserver:1.4 </del> <ins> # Exécutez une image de conteneur de test qui inclut un serveur web kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080 </ins> ``` <del> 2. Affichez le déploiement : </del> <ins> 2. Afficher le Deployment: </ins> ```shell kubectl get deployments ``` <del> Sortie : </del> <ins> La sortie ressemble à: </ins> <del> ```shell NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE hello-node   1         1         1            1           1m </del> ``` <ins> NAME         READY   UP-TO-DATE   AVAILABLE   AGE hello-node   1/1     1            1           1m ``` (Il peut s'écouler un certain temps avant que le pod ne soit disponible. Si vous voyez "0/1", réessayez dans quelques secondes.) </ins> <del> 3. Voir le Pod : </del> <ins> 3. Afficher le Pod: </ins> ```shell kubectl get pods ``` <del> Sortie : ```shell </del> <ins> La sortie ressemble à: ``` </ins> NAME                          READY     STATUS    RESTARTS   AGE hello-node-5f76cf6ccf-br9b5   1/1       Running   0          1m ``` <del> 4. Afficher les événements du cluster : </del> <ins> 4. Afficher les événements du cluster: </ins> ```shell kubectl get events ``` <del> 5. Voir la configuration de `kubectl` : </del> <ins> 5. Afficher la configuration `kubectl`: </ins> ```shell kubectl config view ``` <del> {{< note >}}Pour plus d'informations sur les commandes `kubectl`, voir la [vue d'ensemble de kubectl](/docs/user-guide/kubectl-overview/) {{< /note >}}. </del> <ins> 6. Afficher les journaux de l'application pour un conteneur dans un pod (remplacez le nom du pod par celui que vous avez obtenu avec la commande `kubectl get pods`). {{< note >}} Remplacez `hello-node-5f76cf6ccf-br9b5` dans la commande `kubectl logs` par le nom du pod de la sortie de la commande `kubectl get pods`. {{< /note >}} ```shell kubectl logs hello-node-5f76cf6ccf-br9b5 ``` La sortie ressemble à: ``` I0911 09:19:26.677397       1 log.go:195] Started HTTP server on port 8080 I0911 09:19:26.677586       1 log.go:195] Started UDP server on port  8081 ``` </ins> <del> ## Créer un service </del> <ins> {{< note >}} Pour plus d'informations sur les commandes `kubectl`, consultez la [kubectl overview](/docs/reference/kubectl/). {{< /note >}} ## Créer un Service Par défaut, le Pod est accessible uniquement par son adresse IP interne au sein du réseau Kubernetes. Pour rendre le conteneur `hello-node` accessible depuis l'extérieur du réseau virtuel Kubernetes, vous devez exposer le Pod en tant que Kubernetes [*Service*](/docs/concepts/services-networking/service/). </ins> <del> 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. </del> <ins> {{< warning >}} Le conteneur agnhost a un point de terminaison `/shell`, qui est utile pour le débogage, mais dangereux à exposer à Internet. Ne l'exécutez pas sur un cluster Internet-facing ou un cluster de production. {{< /warning >}} </ins> <del> 1. Exposez le Pod à internet en utilisant la commande `kubectl expose` : </del> <ins> 1. Exposez le Pod au réseau public en utilisant la commande `kubectl expose`: </ins> ```shell kubectl expose deployment hello-node --type=LoadBalancer --port=8080 ``` <del> L'indicateur `--type=LoadBalancer` indique que vous voulez exposer votre Service à l'extérieur du cluster. </del> <ins> Le drapeau `--type=LoadBalancer` indique que vous souhaitez exposer votre Service en dehors du cluster. </ins> <del> 2. Affichez le Service que vous venez de créer : </del> <ins> Le code de l'application à l'intérieur de l'image de test ne répond qu'aux requêtes sur le port TCP 8080. Si vous avez utilisé `kubectl expose` pour exposer un port différent, les clients ne pourront pas se connecter à ce port. 2. Afficher le Service que vous avez créé: </ins> ```shell kubectl get services ``` <del> Sortie : </del> <ins> La sortie ressemble à: </ins> <del> ```shell </del> <ins> ``` </ins> 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 ``` <del> 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`. </del> <ins> Sur les fournisseurs de cloud qui prennent en charge les équilibreurs de charge, Une adresse IP externe sera provisionnée pour accéder au Service. Sur minikube, le type `LoadBalancer` rend le Service accessible via la commande `minikube service`. </ins> <del> 3. Exécutez la commande suivante : </del> <ins> 3. Exécutez la commande suivante: </ins> ```shell minikube service hello-node ``` <del> 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`. </del> <ins> Cette commande ouvre une fenêtre de navigateur qui sert votre application et affiche la réponse de l'application. </ins> ## Activer les extensions <del> 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. </del> <ins> La commande `minikube` inclut un ensemble intégré d'{{< glossary_tooltip text="addons" term_id="addons" >}} qui peuvent être activés, désactivés et ouverts dans l'environnement local Kubernetes. </ins> <del> 1. Énumérer les extensions actuellement pris en charge : </del> <ins> 1. Liste des extensions pris en charge actuellement: </ins> ```shell minikube addons list ``` <del> Sortie: </del> <ins> La sortie ressemble à: </ins> ``` addon-manager: enabled <del> coredns: disabled </del> dashboard: enabled default-storageclass: enabled efk: disabled freshpod: disabled <del> heapster: disabled </del> <ins> gvisor: disabled helm-tiller: disabled </ins> ingress: disabled <del> kube-dns: enabled </del> <ins> ingress-dns: disabled logviewer: disabled </ins> metrics-server: disabled nvidia-driver-installer: disabled nvidia-gpu-device-plugin: disabled registry: disabled registry-creds: disabled storage-provisioner: enabled <ins> storage-provisioner-gluster: disabled </ins> ``` <del> 2. Activez une extension, par exemple, `heapster` : </del> <ins> 2. Activer une extension, par exemple, `metrics-server`: </ins> ```shell <del> minikube addons enable heapster </del> <ins> minikube addons enable metrics-server </ins> ``` <del> Sortie : </del> <ins> La sortie ressemble à: </ins> <del> ```shell heapster was successfully enabled </del> <ins> ``` The 'metrics-server' addon is enabled </ins> ``` <del> 3. Affichez le pod et le service que vous venez de créer : </del> <ins> 3. Afficher le Pod et le Service que vous avez créés en installant cette extension: </ins> ```shell kubectl get pod,svc -n kube-system ``` <del> Sortie : </del> <ins> La sortie devrait être simulaire à : </ins> <del> ```shell </del> <ins> ``` </ins> NAME                                        READY     STATUS    RESTARTS   AGE <del> pod/heapster-9jttx                          1/1       Running   0          26s </del> <ins> pod/coredns-5644d7b6d9-mh9ll                1/1       Running   0          34m pod/coredns-5644d7b6d9-pqd2t                1/1       Running   0          34m pod/metrics-server-67fb648c5                1/1       Running   0          26s pod/etcd-minikube                           1/1       Running   0          34m </ins> pod/influxdb-grafana-b29w8                  2/2       Running   0          26s pod/kube-addon-manager-minikube             1/1       Running   0          34m <del> pod/kube-dns-6dcb57bcc8-gv7mw               3/3       Running   0          34m pod/kubernetes-dashboard-5498ccf677-cgspw   1/1       Running   0          34m </del> <ins> pod/kube-apiserver-minikube                 1/1       Running   0          34m pod/kube-controller-manager-minikube        1/1       Running   0          34m pod/kube-proxy-rnlps                        1/1       Running   0          34m pod/kube-scheduler-minikube                 1/1       Running   0          34m </ins> pod/storage-provisioner                     1/1       Running   0          34m NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE <del> service/heapster               ClusterIP   10.96.241.45    <none>        80/TCP              26s </del> <ins> service/metrics-server         ClusterIP   10.96.241.45    <none>        80/TCP              26s </ins> service/kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP       34m <del> service/kubernetes-dashboard   NodePort    10.109.29.1     <none>        80:30000/TCP        34m </del> 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 ``` <del> 4. Désactivez `heapster` : </del> <ins> 4. Vérifier la sortie de `metrics-server`: </ins> ```shell <del> minikube addons disable heapster </del> <ins> kubectl top pods </ins> ``` <del> Sortie : </del> <ins> La sortie ressemble à: ``` NAME                         CPU(cores)   MEMORY(bytes) hello-node-ccf4b9788-4jn97   1m           6Mi ``` Si vous voyez le message suivant, attendez un peu et réessayez: ``` error: Metrics API not available ``` 5. Désactiver `metrics-server`: </ins> ```shell <del> heapster was successfully disabled </del> <ins> minikube addons disable metrics-server ``` La sortie ressemble à: ``` metrics-server was successfully disabled </ins> ``` ## Nettoyage <del> Vous pouvez maintenant nettoyer les ressources que vous avez créées dans votre cluster : </del> <ins> Vous pouvez maintenant nettoyer les ressources que vous avez créées dans votre cluster: </ins> ```shell kubectl delete service hello-node kubectl delete deployment hello-node ``` <del> Si nécessaire, arrêtez la machine virtuelle Minikube (VM) : </del> <ins> Si nécessaire, arrêtez la machine virtuelle Minikube (VM) </ins> ```shell minikube stop ``` <del> Si nécessaire, effacez la VM Minikube : </del> <ins> Si nécessaire, effacez la VM Minikube: </ins> ```shell <ins> # Facultatif </ins> minikube delete ``` <ins> Si vous souhaitez à nouveau utiliser minikube pour en apprendre davantage sur Kubernetes, vous n'avez pas besoin de le supprimer. ## Conclusion </ins> <del> ## {{% heading "whatsnext" %}} </del> <ins> Cette page a couvert les aspects de base pour mettre en route un cluster minikube. Vous êtes maintenant prêt à déployer des applications. ## {{% heading "whatsnext" %}} </ins> <del> * 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/). </del> <ins> * Tutoriel pour _[déployer votre première application sur Kubernetes avec kubectl.](/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/)_. * En savoir plus sur les [objets Deployment](/docs/concepts/workloads/controllers/deployment/). * En savoir plus sur le [déploiement d'applications](/docs/tasks/run-application/run-stateless-application-deployment/). * En savoir plus sur les [objets Service](/docs/concepts/services-networking/service/). </ins>

Bonjour, Petit problème de CORS sur cette page: Je suis bien sur un ordinateur et j'ai ceci: !
/retitle [fr] Inactive and deprecated interactive tutorial in "Learn Kubernetes Basics" page /language fr
Katacoda environment for the Kubernetes tutorial has been shut down. Refer the announcement . We have an umbrella issue raised to remove tutorials that rely on Katacoda for all localized documents.
/area localization /kind bug
Does it mean I can suggest a merge request for French?
/triage accepted Ce projet est open source : tout le monde peut y contribuer! / This is an open source project, anyone is welcome to contribute!