Instructions et exigences de configuration de l'atelier
Protégez votre compte et votre progression. Utilisez toujours une fenêtre de navigation privée et les identifiants de l'atelier pour exécuter cet atelier.

Développement d'applications : Déployer l'application dans Kubernetes Engine – Node.js

Atelier 2 heures universal_currency_alt 5 crédits show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Ce contenu n'est pas encore optimisé pour les appareils mobiles.
Pour une expérience optimale, veuillez accéder à notre site sur un ordinateur de bureau en utilisant un lien envoyé par e-mail.

Présentation

Dans cet atelier, vous allez déployer l'application Quiz dans Kubernetes Engine (anciennement Container Engine), puis exploiter des ressources de Google Cloud Platform, dont Cloud Build et Container Registry, ainsi que des ressources Kubernetes comme les déploiements, les pods et les services.

Objectifs

Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :

  • Créer des fichiers Dockerfile pour empaqueter le code de l'interface et du backend de l'application Quiz afin de la déployer
  • Générer des images Docker à l'aide de Cloud Build
  • Provisionner un cluster Kubernetes Engine en vue d'héberger l'application Quiz
  • Provisionner des pods répliqués dans Kubernetes Engine via des déploiements Kubernetes
  • Provisionner un équilibreur de charge pour l'interface de Quiz avec un service Kubernetes

Préparation

Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.

  1. Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.

  2. Vérifiez le temps imparti pour l'atelier (par exemple : 01:15:00) : vous devez pouvoir le terminer dans ce délai.
    Une fois l'atelier lancé, vous ne pouvez pas le mettre en pause. Si nécessaire, vous pourrez le redémarrer, mais vous devrez tout reprendre depuis le début.

  3. Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.

  4. Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.

  5. Cliquez sur Ouvrir la console Google.

  6. Cliquez sur Utiliser un autre compte, puis copiez-collez les identifiants de cet atelier lorsque vous y êtes invité.
    Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués.

  7. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.

Activer Google Cloud Shell

Google Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud.

Google Cloud Shell vous permet d'accéder à vos ressources Google Cloud grâce à une ligne de commande.

  1. Dans la barre d'outils située en haut à droite dans la console Cloud, cliquez sur le bouton "Ouvrir Cloud Shell".

    Icône Cloud Shell encadrée

  2. Cliquez sur Continuer.

Le provisionnement et la connexion à l'environnement prennent quelques instants. Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Par exemple :

ID de projet mis en évidence dans le terminal Cloud Shell

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  • Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list

Résultat :

Credentialed accounts: - @.com (active)

Exemple de résultat :

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project =

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Préparer l'application de l'étude de cas

Dans cette section, vous allez accéder à Cloud Shell, cloner le dépôt Git qui contient l'application Quiz, configurer les variables d'environnement et exécuter l'application.

Cloner le code source dans Cloud Shell

  1. Dans Cloud Shell, clonez le dépôt associé à ce cours :
git clone --depth=1 https://github.com/GoogleCloudPlatform/training-data-analyst
  1. Créez un lien symbolique qui servira de raccourci vers le répertoire de travail :
ln -s ~/training-data-analyst/courses/developingapps/v1.3/nodejs/containerengine ~/containerengine

Configurer l'application de l'étude de cas et examiner le code

  1. Changez de répertoire de travail :
cd ~/containerengine/start
  1. Pour remplacer la région par défaut d'un fichier par celle qui a été attribuée à l'atelier, exécutez les commandes suivantes :
export APP_REGION={{{project_0.startup_script.app_gcp_region | APP_REGION}}} export REGION={{{project_0.default_region | REGION}}} sed -i 's/us-central1/'"$REGION"'/g' prepare_environment.sh sed -i 's/us-central/'"$APP_REGION"'/g' prepare_environment.sh
  1. Configurez l'application Quiz :
. prepare_environment.sh Remarque – Ce fichier de script :

  • crée une application Google App Engine ;
  • exporte les variables d'environnement GCLOUD_PROJECT et GCLOUD_BUCKET ;
  • exécute la commande npm install ;
  • crée des entités dans Google Cloud Datastore ;
  • crée un sujet Google Cloud Pub/Sub ;
  • crée une instance, une base de données et une table Cloud Spanner ;
  • affiche l'ID du projet Google Cloud Platform.
  1. Dans Cloud Shell, cliquez sur Ouvrir l'éditeur.
  2. Accédez à containerengine/start.
Remarque : La structure de dossiers associée à l'application Quiz reflète la façon dont celle-ci sera déployée dans Kubernetes Engine.

L'application Web se trouve dans le dossier frontend.

Le code de l'application du nœud de calcul qui s'abonne à Cloud Pub/Sub et traite les messages se trouve dans le dossier backend.

Vous trouverez des fichiers de configuration pour Docker (un Dockerfile dans les dossiers frontend et backend) et Kubernetes Engine (\*.yaml).

Cliquez sur Vérifier ma progression pour valider l'objectif. Configurer l'application de l'étude de cas

Tâche 2 : Créer un cluster Kubernetes Engine

Dans cette section, vous allez créer un cluster Kubernetes Engine qui hébergera l'application Quiz.

Créer un cluster Kubernetes Engine

  1. Dans la console Cloud, accédez au menu de navigation, puis cliquez sur API et services.

  2. Faites défiler la liste des API activées et assurez-vous que les deux API suivantes y figurent :

    • API Kubernetes Engine
    • API Google Container Registry

S'il en manque une, cliquez sur + Activer les API et les services en haut de la page. Recherchez les API ci-dessus par nom et activez chacune d'elles pour votre projet actuel. (Vous avez noté le nom de votre projet GCP plus haut.)

  1. Dans la console Cloud Platform, accédez au menu de navigation, puis cliquez sur Kubernetes Engine > Clusters.
  2. Cliquez sur Créer.
  3. Cliquez sur Mise en route, puis sur Passer au mode standard.
  4. Configurez le cluster à l'aide du tableau suivant :
Propriété Valeur
Nom quiz-cluster
Type d'emplacement Zonal
Zone
Dans la zone Pools de nœuds, cliquez sur default-pool. Dans la zone Sécurité > Niveaux d'accès, sélectionnez Autoriser l'accès complet à l'ensemble des APIs Cloud.
  1. Cliquez sur Créer.
Remarque : Le provisionnement du cluster prend environ deux minutes.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer un cluster Kubernetes Engine

Se connecter au cluster

  1. Une fois le cluster prêt, cliquez sur les trois points verticaux à droite, puis sur Connecter.

  2. Pour insérer la commande de connexion dans Cloud Shell, sous Se connecter au cluster, cliquez sur Exécuter dans Cloud Shell. La commande doit ressembler à ceci :

gcloud container clusters get-credentials quiz-cluster --zone {{{project_0.default_zone|ZONE}}} --project {{{project_0.project_id|Project ID}}}
  1. Appuyez sur ENTRÉE pour exécuter la commande dans Cloud Shell.

  2. Affichez la liste des pods du cluster :

kubectl get pods Remarque : La réponse devrait indiquer qu'il n'y a pas de pods dans le cluster.

Cela confirme que la sécurité est configurée de sorte à autoriser l'outil de ligne de commande kubectl à effectuer des opérations sur le cluster.

Tâche 3 : Créer des images Docker à l'aide de Cloud Build

Dans cette section, vous allez créer un Dockerfile pour l'interface et le backend de l'application, puis utiliser Cloud Build pour créer des images et les stocker dans Container Registry.

Créer le Dockerfile pour l'interface et le backend

  1. Dans l'éditeur de code Cloud Shell, ouvrez frontend/Dockerfile.
  2. Après le texte existant, saisissez les commandes Dockerfile permettant d'initialiser la création d'une image Docker personnalisée qui utilise l'image App Engine NodeJS de Google comme point de départ.
Remarque : L'image que vous allez utiliser est gcr.io/google_appengine/nodejs.
  1. Ajoutez la commande Dockerfile pour copier le contenu du dossier actuel vers un dossier de destination dans le répertoire de l'image /app/.
  2. Ajoutez la commande Dockerfile permettant d'exécuter l'instruction npm install -g npm@8.1.3 dans le cadre du processus de compilation afin de vous assurer que le conteneur exécute une version de npm compatible avec l'application.
  3. Ajoutez la commande Dockerfile pour exécuter l'instruction npm update.
  4. Complétez le Dockerfile en saisissant l'instruction npm start, qui s'exécute au démarrage du conteneur :

...frontend/Dockerfile

FROM gcr.io/google_appengine/nodejs RUN /usr/local/bin/install_node '>=0.12.7' COPY . /app/ RUN npm install -g npm@8.1.3 --unsafe-perm || \ ((if [ -f npm-debug.log ]; then \ cat npm-debug.log; \ fi) && false) RUN npm update CMD npm start
  1. Enregistrez le fichier Dockerfile.
  2. Répétez les étapes précédentes pour le fichier backend/Dockerfile :

...backend/Dockerfile

FROM gcr.io/google_appengine/nodejs RUN /usr/local/bin/install_node '>=0.12.7' COPY . /app/ RUN npm install -g npm@8.1.3 --unsafe-perm || \ ((if [ -f npm-debug.log ]; then \ cat npm-debug.log; \ fi) && false) RUN npm update CMD npm start
  1. Enregistrez le deuxième fichier Dockerfile.

Créer des images Docker à l'aide de Cloud Build

  1. Dans Cloud Shell, créez l'image Docker de l'interface :
gcloud builds submit -t gcr.io/$DEVSHELL_PROJECT_ID/quiz-frontend ./frontend/ Remarque : Les fichiers sont transférés dans Cloud Storage, puis une image Docker est créée et stockée dans Container Registry. L'opération prend quelques minutes.
  1. Créez une image Docker backend :
gcloud builds submit -t gcr.io/$DEVSHELL_PROJECT_ID/quiz-backend ./backend/
  1. Dans la console Cloud Platform, accédez au menu de navigation, puis cliquez sur Artifact Registry.
Remarque : Les deux éléments quiz-frontend et quiz-backend doivent s'afficher.
  1. Cliquez sur le dépôt gcr.io.

  2. Cliquez sur quiz-frontend.

Remarque : Le nom de l'image, les tags (les plus récents) et la taille (environ 275 Mo) doivent s'afficher.

Tâche 4 : Créer les ressources de déploiement et de service Kubernetes

Dans cette section, vous allez modifier les fichiers yaml modèles qui contiennent les spécifications associées aux ressources de déploiement et de service Kubernetes, puis créer ces ressources dans le cluster Kubernetes Engine.

Créer un fichier de déploiement Kubernetes

  1. Dans l'éditeur de code Cloud Shell, ouvrez le fichier frontend-deployment.yaml.
Remarque : Nous avons déjà créé la base du fichier. Votre travail consiste à remplacer les espaces réservés par les valeurs propres à votre projet.
  1. Remplacez les espaces réservés dans le fichier frontend-deployment.yaml par les valeurs suivantes :

Nom de l'espace réservé

Valeur

[GCLOUD_PROJECT]

ID du projet GCP
(pour afficher l'ID du projet, saisissez
echo $GCLOUD_PROJECT dans Cloud Shell)

[GCLOUD_BUCKET]

Nom du bucket Cloud Storage qui servira de bucket multimédia pour votre projet
(saisissez
echo $GCLOUD_BUCKET pour afficher le nom du bucket dans Cloud Shell)

[FRONTEND_IMAGE_IDENTIFIER]

Image de l'interface frontend identifiée sous la forme gcr.io/[Project_ID]/quiz-frontend

Remarque : Le déploiement "quiz-frontend" provisionne trois instances répliquées de l'image Docker de l'interface dans des pods Kubernetes, en les répartissant sur les trois nœuds du cluster Kubernetes Engine.
  1. Enregistrez le fichier.
  2. Remplacez les espaces réservés dans le fichier backend-deployment.yaml par les valeurs suivantes :

Nom de l'espace réservé

Valeur

[GCLOUD_PROJECT]

ID du projet GCP

[GCLOUD_BUCKET]

ID du bucket Cloud Storage utilisé en tant que bucket multimédia dans votre projet

[BACKEND_IMAGE_IDENTIFIER]

Image du backend identifiée sous la forme gcr.io/[Project_ID]/quiz-backend

Remarque : Le déploiement "quiz-backend" provisionne deux instances répliquées de l'image Docker du backend dans des pods Kubernetes, en les répartissant sur deux des trois nœuds du cluster Kubernetes Engine.
  1. Enregistrez le fichier.
  2. Examinez le contenu du fichier frontend-service.yaml.
Remarque : Le service expose le déploiement de l'interface à l'aide d'un équilibreur de charge. L'équilibreur de charge est configuré pour envoyer les requêtes provenant des clients vers les trois instances répliquées du pod de l'interface.

Exécuter les fichiers de déploiement et de service

  1. Dans Cloud Shell, provisionnez le déploiement de l'interface de Quiz :
kubectl create -f ./frontend-deployment.yaml
  1. Provisionnez le déploiement du backend de Quiz :
kubectl create -f ./backend-deployment.yaml
  1. Provisionnez le service de l'interface de Quiz :
kubectl create -f ./frontend-service.yaml Remarque : Chaque commande provisionne des ressources dans Kubernetes Engine. Ce processus dure quelques minutes.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer les ressources de déploiement et de service Kubernetes

Tâche 5 : Tester l'application Quiz

Dans cette section, vous examinez les pods et le service déployés, et accédez à l'application Quiz.

Examiner les ressources déployées

  1. Dans le menu de navigation de la console Cloud, cliquez sur Kubernetes Engine.
  2. Cliquez sur Kubernetes Engine > Charges de travail.
Remarque : Les deux éléments quiz-frontend et quiz-backend doivent s'afficher.

Vous pouvez constater que les pods sont en cours de création ou d'ores et déjà opérationnels. Vous devrez peut-être actualiser la page plusieurs fois jusqu'à ce que le message "OK" s'affiche.
  1. Cliquez sur quiz-frontend.
  2. Faites défiler la page jusqu'à la section Pods gérés.
Remarque : Vous devez constater la présence de trois pods quiz-frontend.
  1. Cliquez sur Kubernetes Engine > Passerelles, services et entrées.

  2. Cliquez sur l'onglet Services.

Remarque : Vous pouvez constater que l'équilibreur de charge de quiz-frontend est en cours de création ou d'ores et déjà opérationnel.

Patientez jusqu'à ce que le service soit opérationnel (état OK).

Un point de terminaison d'adresse IP doit s'afficher lorsque le service est prêt.
  1. Sous Points de terminaison, cliquez sur l'Adresse IP du service.
Remarque : L'application Quiz doit désormais apparaître.
  1. Créez une question ou lancez un test.
Remarque : L'application fonctionne comme prévu. Remarque : Révisions

Quelle commande Docker permet d'exécuter une commande lors de la construction du conteneur ?

  1. FROM
  2. COPY
  3. RUN
  4. CMD
Quelle commande Docker permet d'exécuter une commande une fois le conteneur déployé ?

  1. FROM
  2. COPY
  3. RUN
  4. CMD
Quelle commande Kubernetes permet de récupérer la liste des pods en cours d'exécution sur un cluster ?

  1. kubectl pods list
  2. kubectl deployments list
  3. kubectl get pods
  4. kubectl get deployments

Tâche 6 : Déployer le service de classement sur Kubernetes Engine (Bonus)

Lorsqu'un élève répond à un quiz, ses réponses sont envoyées dans un appel d'API au serveur. Votre tâche consiste à capturer les réponses envoyées par les élèves, ainsi que les bonnes réponses, et à les enregistrer dans Cloud Spanner.

Pour ce faire, vous devrez :

  1. Créer un sujet Cloud Pub/Sub nommé "answers" (réponses)
  2. Créer une table Cloud Spanner appelée "Answers", dotée des noms de colonnes et des types de données appropriés
  3. Publier les réponses dans le sujet des réponses
  4. Créer un déploiement answer-backend, dans lequel l'application s'abonne au sujet des réponses dans l'application de la console et y insère les données de réponse dans la table Answers
  5. Créer un gestionnaire et un modèle Pug dans quiz-frontend pour afficher les données de Cloud Spanner lorsque l'utilisateur accède au classement

C'est vous qui décidez des détails !

Terminer l'atelier

Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.

Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.

Le nombre d'étoiles correspond à votre degré de satisfaction :

  • 1 étoile = très insatisfait(e)
  • 2 étoiles = insatisfait(e)
  • 3 étoiles = ni insatisfait(e), ni satisfait(e)
  • 4 étoiles = satisfait(e)
  • 5 étoiles = très satisfait(e)

Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.

Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.

Copyright 2026 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms de société et de produit peuvent être des marques des sociétés auxquelles ils sont associés.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Le meilleur moyen d'exécuter cet atelier consiste à utiliser une fenêtre de navigation privée. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.