GSP188
Présentation
Google Kubernetes Engine est un environnement géré grâce auquel vous pouvez déployer, gérer et faire évoluer vos applications en conteneur à l'aide de l'infrastructure Google. L'environnement Kubernetes Engine se compose de plusieurs machines (plus précisément, d'instances Compute Engine), regroupées pour former un cluster.
Les mécanismes de Kubernetes vous permettent d'interagir avec votre cluster. Grâce aux commandes et ressources Kubernetes, vous pouvez déployer et gérer vos applications, effectuer des tâches d'administration, définir des stratégies et surveiller l'état de vos charges de travail déployées.
Dans cet atelier, vous allez déployer l'application Quiz dans Kubernetes Engine et exploiter des ressources de Google Cloud, dont Cloud Build et Artifact Registry, ainsi que des ressources de Kubernetes comme les déploiements, les pods et les services.
Points abordés
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
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. 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.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :
- Le bouton "Ouvrir la console Google Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Activer Cloud Shell
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. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
Passez les fenêtres suivantes :
- Accédez à la fenêtre d'informations de Cloud Shell.
- Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET : . Le résultat contient une ligne qui déclare l'ID_PROJET pour cette session :
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
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.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Lancer l'éditeur Cloud Shell
Dans Cloud Shell, cliquez sur Ouvrir l'éditeur pour lancer l'éditeur de code.

Remarque : L'éditeur de code s'ouvre avec Cloud Shell dans un nouvel onglet de votre navigateur.
Préparer l'application Quiz
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
- Cliquez sur Ouvrir le terminal et clonez le dépôt pour l'atelier :
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
- Créez un lien symbolique qui servira de raccourci vers le répertoire de travail :
ln -s ~/training-data-analyst/courses/developingapps/v1.2/python/kubernetesengine ~/kubernetesengine
Configurer l'application Quiz
- Passez au répertoire qui contient les exemples de fichiers de l'atelier :
cd ~/kubernetesengine/start
- Pour remplacer la région par défaut par celle qui a été attribuée à l'atelier, exécutez les commandes suivantes :
export APP_REGION={{{project_0.startup_script.app_region | APP_REGION}}}
export REGION={{{project_0.default_region | REGION}}}
sed -i -e 's/us-central1/'"$REGION"'/g' -e 's/us-central/'"$APP_REGION"'/g' -e 's/python3/'"python3.12"'/g' prepare_environment.sh
- Configurez l'application Quiz :
. prepare_environment.sh
Ce fichier de script :
- crée une application Google App Engine ;
- exporte les variables d'environnement
GCLOUD_PROJECT et GCLOUD_BUCKET ;
- met à jour PIP, puis exécute
pip install -r requirements.txt ;
- 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.
L'application Quiz est configurée lorsque le message suivant s'affiche :
Exemple de message de sortie
Creating Cloud Pub/Sub topic
Created topic [projects/qwiklabs-gcp-92b7e5716e0cbf7e/topics/feedback].
Created subscription [projects/qwiklabs-gcp-92b7e5716e0cbf7e/subscriptions/worker-subscription].
Creating Cloud Spanner Instance, Database, and Table
Creating instance...done.
Creating database...done.
Project ID: qwiklabs-gcp-92b7e5716e0cbf7e
Cliquez sur Vérifier ma progression pour valider l'objectif.
Configurer l'application Quiz
Examiner le code
Dans cette section, vous allez examiner les fichiers de l'application.
Pour afficher et modifier des fichiers, vous pouvez utiliser les éditeurs de script installés dans Cloud Shell, tels que nano ou vim, ou encore l'éditeur Cloud Shell. Dans cet atelier, vous allez utiliser l'éditeur Cloud Shell.
Examiner le code
- Accédez à
training-data-analyst/courses/developingapps/v1.2/python/kubernetesengine/start.
La structure de dossiers associée à l'application Quiz reflète la façon dont elle va être 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 le dossier frontend, et un autre dans le dossier backend) et des fichiers .yaml Kubernetes Engine (backend-deployment et frontend-deployment).
Créer un cluster Kubernetes Engine et s'y connecter
Dans cette section, vous allez utiliser la console Google Cloud pour créer un cluster Kubernetes Engine et vous y connecter.
Créer un cluster Kubernetes Engine
-
Dans la console, accédez au menu de navigation (
) > Kubernetes Engine > Clusters.
-
Cliquez sur Créer.
-
Cliquez sur Configurer dans Standard : vous gérez votre cluster, puis renseignez les champs suivants avec les valeurs fournies et conservez les valeurs par défaut dans les autres champs :
|
Propriété
|
Valeur
|
|
Nom
|
quiz-cluster
|
|
Zonal
|
|
|
Pool par défaut > Sécurité > Niveaux d'accès
|
Sélectionner Autoriser l'accès complet à l'ensemble des API Cloud
|
-
Cliquez sur Créer.
Le provisionnement du cluster prend quelques minutes.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer le cluster Kubernetes Engine
Se connecter au cluster
Dans cette section, vous connectez l'application Quiz au cluster Kubernetes.
- Une fois le cluster prêt, cliquez sur l'icône Actions, puis sélectionnez Se connecter.

- Dans Se connecter au cluster, cliquez sur Exécuter dans Cloud Shell pour insérer dans Cloud Shell une commande semblable à celle-ci :
gcloud container clusters get-credentials quiz-cluster --zone {{{project_0.default_zone|ZONE}}} --project {{{project_0.project_id|Project ID}}}
Appuyez sur ENTRÉE pour exécuter la commande dans Cloud Shell.
- Exécutez la commande suivante pour afficher la liste des pods dans le cluster :
kubectl get pods
La réponse devrait être No resources found in default namespace (Aucune ressource trouvée dans l'espace de noms par défaut), car le cluster ne contient aucun pod. 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.
Créez un dépôt Docker dans Artifact Registry :
Artifact Registry permet de gérer les images de conteneurs et les packages de langages. Chaque type d'artefact nécessite des spécifications différentes. Par exemple, les requêtes de dépendances Maven sont différentes des requêtes de dépendances Node.
Pour prendre en charge les différentes spécifications d'API, Artifact Registry doit connaître le format que vous souhaitez utiliser pour les réponses de l'API. Pour ce faire, vous allez créer un dépôt et transmettre le flag --repository-format indiquant le type de dépôt souhaité.
- Dans Cloud Shell, exécutez la commande suivante pour créer un dépôt pour les images Docker :
gcloud artifacts repositories create container-dev-repo --repository-format=docker \
--location={{{project_0.default_region | REGION}}} \
--description="Docker repository for Container Dev Workshop"
Si l'invite d'autorisation de Cloud Shell s'affiche, cliquez sur Autoriser.
- Dans la console Cloud, accédez à Artifact Registry > Dépôts et repérez le dépôt Docker que vous venez de créer, nommé
container-dev-repo. Si vous cliquez dessus, vous verrez qu'il est vide pour le moment.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un dépôt Docker
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 Artifact Registry.
Créer le Dockerfile pour l'interface et le backend
- Dans l'éditeur Cloud Shell, ouvrez
frontend/Dockerfile.
- Ajoutez ensuite un bloc de code qui exécute les actions suivantes :
- Saisie de la commande Dockerfile pour initialiser la création d'une image Docker personnalisée avec, pour point de départ, l'image Python App Engine de Google.
- Codage des commandes Dockerfile pour activer un environnement virtuel.
- Écriture de la commande Dockerfile permettant d'exécuter
pip install dans le cadre du processus de compilation.
- Codage de la commande Dockerfile pour ajouter les contenus du dossier actuel au chemin
/app dans le conteneur.
- Création du
Dockerfile à l'aide de l'instruction gunicorn… qui s'exécute lorsque le conteneur est ouvert. Gunicorn (Green Unicorn) est un serveur HTTP compatible avec la spécification de l'interface passerelle de serveur Web (WSGI) Python.
Copiez et collez le contenu suivant dans Dockerfile :
FROM gcr.io/google_appengine/python
RUN virtualenv -p python3.7 /env
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
ADD . /app
CMD gunicorn -b 0.0.0.0:$PORT quiz:app
- Ouvrez le fichier
backend/Dockerfile, puis copiez le code suivant et collez-le dans le fichier :
FROM gcr.io/google_appengine/python
RUN virtualenv -p python3.7 /env
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
ADD . /app
CMD python -m quiz.console.worker
Créer des images Docker à l'aide de Cloud Build
- Dans Cloud Shell, vérifiez que vous êtes bien dans le dossier
start :
cd ~/kubernetesengine/start
- Exécutez la commande suivante pour créer l'image Docker de l'interface :
gcloud builds submit -t {{{project_0.default_region | REGION}}}-docker.pkg.dev/{{{project_0.project_id|Project ID}}}/container-dev-repo/quiz-frontend:v1 ./frontend/
Ici, l'image Docker est créée et stockée dans Artifact Registry. Cette opération prend quelques minutes.
Ignorez les messages indiquant une incompatibilité qui s'affichent à l'écran.
- Exécutez ensuite la commande suivante pour créer l'image Docker du backend :
gcloud builds submit -t {{{project_0.default_region | REGION}}}-docker.pkg.dev/{{{project_0.project_id|Project ID}}}/container-dev-repo/quiz-backend:v1 ./backend/
Lorsque l'image Docker du backend est prête, ces derniers messages s'affichent :
DONE
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ID: 97a3648f-5229-49ef-9c93-a33dbdb421f3
CREATE_TIME: 2024-12-16T13:29:57+00:00
DURATION: 2M10S
SOURCE: gs://qwiklabs-gcp-03-2cae39dd1d7c_cloudbuild/source/1734355794.276254-1b5d85622afb4360910a164f9f29734d.tgz
IMAGES: us-east1-docker.pkg.dev/qwiklabs-gcp-03-2cae39dd1d7c/container-dev-repo/quiz-backend:v1
STATUS: SUCCESS
-
Dans le menu de navigation de la console, cliquez sur Artifact Registry, puis sélectionnez container-dev-repo.
Vous devriez voir les deux pods suivants : quiz-frontend et quiz-backend.
-
Cliquez sur quiz-frontend.
Remarque : Vous devez voir le nom de l'image et les tags (les plus récents).
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer des images Docker à l'aide de Cloud Build
Créer des 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
- Dans l'éditeur 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.
- 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 (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 (pour afficher l'ID du projet, saisissez
echo $GCLOUD_BUCKET dans Cloud Shell)
|
|
[FRONTEND_IMAGE_IDENTIFIER]
|
Image de l'interface identifiée sous la forme [REGION]-docker.pkg.dev/[Project_ID]/container-dev-repo/quiz-frontend:v1
|
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.
- Enregistrez le fichier.
- 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
|
|
[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 [REGION]-docker.pkg.dev/[Project_ID]/container-dev-repo/quiz-backend:v1
|
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.
- Enregistrez le fichier.
- 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
- Dans Cloud Shell, provisionnez le déploiement de l'interface de Quiz :
kubectl create -f ./frontend-deployment.yaml
- Provisionnez le déploiement du backend de Quiz :
kubectl create -f ./backend-deployment.yaml
- 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 des ressources de déploiement et de service Kubernetes
Tester l'application Quiz
Dans cette section, vous allez examiner les pods et le service déployés, et accéder à l'application Quiz.
Examiner les ressources déployées
- Dans le menu de navigation de la console, cliquez sur Kubernetes Engine.
- Cliquez sur Charge de travail dans le menu de gauche.
Remarque : Vous devriez voir les deux conteneurs suivants : quiz-frontend et quiz-backend.
Vous pouvez constater que les conteneurs sont en cours de création ou d'ores et déjà opérationnels.
Si l'état d'un ou des deux conteneurs affiche Does not have minimum availability (Disponibilité minimale non présente), actualisez la fenêtre.
-
Cliquez sur quiz-frontend. Dans la section Pods gérés, trois pods quiz-frontend sont présents.
-
Dans la section Services associés en bas de la page, recherchez la section Points de terminaison, copiez l'adresse IP, puis collez-la dans le champ d'URL d'un nouvel onglet ou d'une nouvelle fenêtre de navigateur :

- L'application Quiz s'ouvre, ce qui signifie que vous avez déployé l'application. Vous pouvez arrêter l'atelier ici ou utiliser le temps restant pour créer d'autres questionnaires.
Remarque : Si un pop-up indiquant La connexion au site n'est pas sécurisée s'affiche, cliquez sur Accéder au site.
Félicitations !
L'atelier d'auto-formation "Développement d'applications : Déployer l'application dans Kubernetes Engine – Python" est maintenant terminé. Vous avez exploité des ressources Google Cloud et Kubernetes pour déployer une application Quiz.
Étapes suivantes et informations supplémentaires
En savoir plus sur Kubernetes Engine
Dernière mise à jour du manuel : 24 septembre 2025
Dernier test de l'atelier : 24 septembre 2025
Copyright 2026 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.