Points de contrôle
Configure the Quiz application
/ 30
Create Kubernetes engine cluster
/ 20
Build Docker Images using Container Builder
/ 20
Create Kubernetes Deployment and Service Resources
/ 30
Développement d'applications : déployer l'application dans Kubernetes Engine – Python
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 de Kubernetes Engine comprend plusieurs machines (en particulier, les instances de Google 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 proposées, 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 tirer parti des ressources de Google Cloud Platform, dont Container Builder et Container Registry, et des ressources de Kubernetes, comme les déploiements, les pods et les services.
Objectifs
Cet atelier va vous apprendre à effectuer les tâches suivantes :
- Créer, à l'aide des Dockerfiles, un package contenant le code de l'interface et du backend de l'application Quiz afin de la déployer
- Utiliser Container Builder pour générer des images Docker
- Provisionner un cluster Kubernetes Engine pour héberger l'application Quiz
- Se servir des déploiements Kubernetes pour provisionner des pods répliqués dans Kubernetes Engine
- Exploiter un service Kubernetes afin de provisionner un équilibreur de charge pour l'interface de Quiz
Configuration de Qwiklabs
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 vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour 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) ;
- vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up 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 gratuits.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
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.
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 YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :
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 :
-
Cliquez sur Autoriser.
-
Vous devez à présent obtenir le résultat suivant :
Résultat :
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
Résultat :
Exemple de résultat :
gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Lancer l'éditeur de code Cloud Shell
Dans Cloud Shell, cliquez sur l'icône en forme de crayon Open Editor (Ouvrir éditeur).
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 Terminal ouvert et clonez le référentiel du laboratoire.
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
Créez un lien logiciel comme raccourci vers le répertoire de travail.
ln -s ~/training-data-analyst/courses/developingapps/v1.2/python/kubernetesengine ~/kubernetesengine
Configurer l'application Quiz
Modifiez le répertoire de travail.
cd ~/kubernetesengine/start
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
etGCLOUD_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 Google Cloud Platform.
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 vérifier l'objectif.
Examiner le code
Dans cette section, vous allez examiner les fichiers de l'application.
Pour afficher et éditer des fichiers, vous pouvez utiliser les éditeurs de shell installés dans Cloud Shell, tels que nano
ou vim
ou l'éditeur de code Cloud Shell. Ce laboratoire utilise l'éditeur de code Cloud Shell.
Cet atelier utilise l'éditeur de code Cloud Shell pour examiner le code de l'application Quiz.
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 les dossiers frontend
et backend
) et des fichiers .yaml
Kubernetes Engine backend-deployment
et frontend-deployment
.
Créer un cluster Kubernetes Engine et s'y connecter
Créer un cluster Kubernetes Engine
-
Dans la console Cloud Platform, cliquez sur le menu de navigation > Kubernetes Engine > Clusters.
-
Cliquez sur Créer cluster (Créer un cluster).
-
Configurez le cluster. Définissez les champs suivants sur les valeurs fournies, laissez tous les autres à la valeur par défaut:
Propriété |
Valeur |
Name (Nom) |
|
Zone |
|
default Pool > Security > Access scopes (default Pool > Sécurité > Accéder aux portées) |
Sélectionnez Allow full access to all Cloud APIs (Autoriser l'accès complet à l'ensemble des API Cloud), puis cliquez sur save (Enregistrer). |
-
Cliquez sur Créer (Créer). Le provisionnement du cluster dure environ deux minutes.
Cliquez sur Vérifier ma progression pour vérifier l'objectif.
Se connecter au cluster
Dans cette section, vous connectez l'application Quiz au cluster Kubernetes.
- Une fois le cluster prêt, cliquez sur Connect (Se connecter).
-
Dans Connect to the cluster (Se connecter au cluster), cliquez sur Run in Cloud Shell (Exécuter dans Cloud Shell). Appuyez sur Entrée dans Cloud Shell pour exécuter la commande déjà saisie qui ressemble à
gcloud container clusters get-credentials quiz-cluster --zone us-central1-b --project [ID-projet]
. -
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
(Aucune ressource trouvée), car le cluster ne contient aucun pod. Cela confirme que vous avez configuré la sécurité de sorte à autoriser l'outil de ligne de commande kubectl
à effectuer des opérations sur le cluster.
Créer des images Docker avec Container Builder
Dans cette section, vous créez un Dockerfile pour l'interface et le backend de l'application, et utilisez Container Builder pour créer des images et les stocker dans Container Registry.
Créer le Dockerfile pour l'interface et le backend
Dans l'éditeur de code Cloud Shell, ouvrez frontend/Dockerfile
. Vous allez ensuite ajouter 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
- Codage de la commande Dockerfile pour exécuter
pip install
dans le cadre du processus de création - 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'instructiongunicorn…
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 ensuite le code suivant et collez-le dans le fichier 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 ensuite le fichier backend/Dockerfile
, puis copiez et collez le code suivant :
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 avec Container Builder
-
Dans Cloud Shell, assurez-vous que vous vous trouvez dans le dossier
start
: -
Exécutez la commande suivante pour créer l'image Docker frontale:
cd ~/kubernetesengine/start
gcloud builds submit -t gcr.io/$DEVSHELL_PROJECT_ID/quiz-frontend ./frontend/
Les fichiers sont transférés dans Cloud Storage, et une image Docker est créée et stockée dans Container Registry. Cette opération prend quelques minutes.
Ignorez les messages indiquant une incompatibilité qui apparaissent à l'écran.
-
Exécutez ensuite la commande suivante pour créer l'image Docker du backend :
gcloud builds submit -t gcr.io/$DEVSHELL_PROJECT_ID/quiz-backend ./backend/
Lorsque l'image Docker du backend est prête, ces derniers messages apparaissent :
DONE
-----------------------------------------------------------------------------------------------------------------------
ID CREATE_TIME DURATION SOURCE
IMAGES
STATUS
be0326f4-3f6f-42d6-850f-547e260dd4d7 2018-06-13T22:20:16+00:00 50S gs://qwiklabs-gcp-3f89d0745056ee31_cloudbuil
d/source/1528928414.79-4914d2a972f74e188f40ced135662b7d.tgz gcr.io/qwiklabs-gcp-3f89d0745056ee31/quiz-backend (+1 more
) SUCCESS
- Dans la console Cloud Platform, cliquez sur le menu de navigation, puis sur Container Registry.
Vous devriez voir les deux pods suivants :
quiz-frontend
etquiz-backend
.
- Cliquez sur quiz-frontend.
Cliquez sur Vérifier ma progression pour vérifier l'objectif.
Créer des ressources de déploiement et de service Kubernetes
Dans cette section, vous allez modifier les fichiers du modèle yaml
qui contiennent les spécifications relatives 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 de code Cloud Shell, ouvrez le fichier
frontend-deployment.yaml
.
- Remplacez les espaces réservés dans le fichier
frontend-deployment.yaml
par les valeurs suivantes :
Nom de l'espace réservé |
Valeur |
|
ID du projet GCP |
|
Nom du bucket Cloud Storage pour le bucket multimédia dans votre projet |
|
Image de l'interface frontend identifiée sous la forme |
- 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 |
|
ID du projet GCP |
|
ID du bucket Cloud Storage pour le bucket multimédia dans votre projet |
|
Image du backend identifiée sous la forme |
- Enregistrez le fichier.
- Examinez le contenu du fichier
frontend-service.yaml
.
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
Cliquez sur Vérifier ma progression pour vérifier l'objectif.
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
- Dans la console Google Cloud Platform, cliquez sur le menu de navigation, puis sur Kubernetes Engine.
- Cliquez sur Workloads (Charges de travail).
-
Cliquez sur quiz-frontend. Dans la section Managed pods (Pods gérés), trois pods quiz-frontend sont présents.
-
Dans la section Services vers le bas, recherchez la section Points de terminaison, copiez l'adresse IP et collez-la dans le champ URL d'un nouvel onglet ou d'une nouvelle fenêtre du navigateur:
-
L'application Quiz s'ouvre dans un nouvel onglet, ce qui signifie que vous avez réussi le déploiement. Vous pouvez arrêter l'atelier ici ou utiliser le temps restant pour créer d'autres questionnaires.
Félicitations !
Ceci conclut le laboratoire à votre rythme, App Dev: déploiement de l'application dans Kubernetes Engine - Python. Vous avez exploité les ressources GCP et Kubenetes pour déployer une application Quiz.
Terminer votre quête
Ce laboratoire à votre rythme fait partie des quêtes Développement d'applications - Python et Cloud Development. Une quête est une série d'ateliers associés qui constituent une formation. Si vous terminez cette quête, vous obtenez le badge ci-dessus attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à cette quête pour obtenir immédiatement les crédits associés à cet atelier si vous l'avez suivi. Découvrez les autres quêtes Qwiklabs disponibles.
Étapes suivantes et informations supplémentaires
En savoir plus sur Kubernetes Engine.
Dernière mise à jour du manuel : 16 octobre 2020
Dernier test de l'atelier : 16 octobre 2020
Copyright 2024 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.