arrow_back

Développement d'applications : déployer l'application dans Kubernetes Engine – Python

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Développement d'applications : déployer l'application dans Kubernetes Engine – Python

Lab 50 minutes universal_currency_alt 1 crédit show_chart Débutant
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP188

Google Cloud – Ateliers adaptés au rythme de chacun

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) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. 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
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. 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.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. 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 aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

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.

  1. Cliquez sur Activer Cloud Shell Icône 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 :

Your Cloud Platform project in this session is set to YOUR_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.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 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 de code Cloud Shell

Dans Cloud Shell, cliquez sur l'icône en forme de crayon Open Editor (Ouvrir éditeur).

editor.png

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 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 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.

Configurer l'application Quiz

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

  1. Dans la console Cloud Platform, cliquez sur le menu de navigation > Kubernetes Engine > Clusters.

    kubernetes-cluster.png

  2. Cliquez sur Créer cluster (Créer un cluster).

  3. 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)

quiz-cluster

Zone

us-central1-b

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).

  1. 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.

Créer un cluster de moteurs Kubernetes

Se connecter au cluster

Dans cette section, vous connectez l'application Quiz au cluster Kubernetes.

  1. Une fois le cluster prêt, cliquez sur Connect (Se connecter).

kubernetes_cluster_ready.png

  1. 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].

  2. 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'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 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

  1. Dans Cloud Shell, assurez-vous que vous vous trouvez dans le dossier start:

  2. cd ~/kubernetesengine/start
    
  3. Exécutez la commande suivante pour créer l'image Docker frontale:

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.

  1. 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
  1. Dans la console Cloud Platform, cliquez sur le menu de navigation, puis sur Container Registry. Vous devriez voir les deux pods suivants : quiz-frontend et quiz-backend.

backend_frontend.png

  1. Cliquez sur quiz-frontend.

container-image.png

Cliquez sur Vérifier ma progression pour vérifier l'objectif.

Créer des images Docker à l'aide de Container Builder

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

  1. Dans l'éditeur de code Cloud Shell, ouvrez le fichier frontend-deployment.yaml.
  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 pour le bucket multimédia dans votre projet
(Pour afficher le nom du bucket, saisissez
echo $GCLOUD_BUCKET dans Cloud Shell.)

[FRONTEND_IMAGE_IDENTIFIER]

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

  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 pour le bucket multimédia dans votre projet

[BACKEND_IMAGE_IDENTIFIER]

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

  1. Enregistrez le fichier.
  2. Examinez le contenu du fichier frontend-service.yaml.

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

Cliquez sur Vérifier ma progression pour vérifier l'objectif.

Créer des ressources de déploiement et de service Kubernetes

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 la console Google Cloud Platform, cliquez sur le menu de navigation, puis sur Kubernetes Engine.
  2. Cliquez sur Workloads (Charges de travail).
  1. Cliquez sur quiz-frontend. Dans la section Managed pods (Pods gérés), trois pods quiz-frontend sont présents.

  2. 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:

app.png

  1. 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.

fbd1fd568c488208.pngimg/CloudDevelopment_125.png

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.