
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
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 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 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 Platform, dont Cloud Build et Container Registry, ainsi que des ressources de Kubernetes comme les déploiements, les pods et les services.
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
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.
Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.
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.
Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.
Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.
Cliquez sur Ouvrir la console Google.
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.
Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
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.
Dans la barre d'outils située en haut à droite dans la console Cloud, cliquez sur le bouton "Ouvrir Cloud Shell".
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 :
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.
Résultat :
Exemple de résultat :
Résultat :
Exemple de résultat :
Dans cette section, vous allez cloner le dépôt Git qui contient l'application Quiz, configurer les variables d'environnement et exécuter l'application.
GCLOUD_PROJECT
et GCLOUD_BUCKET
;mvn clean install
;Vous allez ensuite examiner et mettre à jour le code de l'application Quiz dans un éditeur de code. Vous pouvez utiliser les éditeurs de script shell installés sur Cloud Shell, tels que nano
ou vim
, ou encore l'éditeur de code intégré de Cloud Shell. Cet atelier utilise l'éditeur de code intégré.
training-data-analyst/courses/developingapps/v1.3/java/kubernetesengine/start
.La structure de dossiers associée à l'application Quiz reflète la façon dont celle-ci sera déployée dans Kubernetes Engine :
frontend
: contient la sortie empaquetée de l'application Web.backend
: contient la sortie empaquetée de l'application de console.Dockerfile
dans les dossiers frontend
et backend
: fichiers de configuration pour Docker. Actuellement vide.*.yaml
: fichier de configuration de Kubernetes Engine.Dans Cloud Shell, revenez au terminal, puis exécutez la commande suivante pour copier la sortie jar
de l'application d'interface dans le dossier frontend
:
Configurez l'application backend :
Copiez la sortie jar de l'application backend dans le dossier backend
:
Dans cette section, vous allez créer un cluster Google Kubernetes Engine pour héberger l'application Quiz.
Dans la console, accédez au menu de navigation > Kubernetes Engine > Clusters.
Ensuite, cliquez sur Créer.
Sélectionnez Configurer pour GKE Standard.
Afin de configurer le cluster, utilisez les valeurs spécifiées pour les propriétés listées dans le tableau suivant et conservez les valeurs par défaut des propriétés non listées :
Dans Paramètres de base du cluster :
Propriété | Valeur |
---|---|
Nom | quiz-cluster |
Zone | us-central1-b |
Développez le pool par défaut default-pool.
Dans Sécurité, sélectionnez Autoriser l'accès complet à l'ensemble des APIs Cloud.
Cliquez sur Créer. Le provisionnement du cluster dure environ deux minutes.
Une fois que le cluster est opérationnel, cliquez sur les trois points verticaux et sélectionnez Se connecter.
Copiez la première commande de la fenêtre Se connecter au cluster dans le presse-papiers.
Cliquez sur OK pour fermer la fenêtre "Se connecter au cluster".
Le format de la commande est le suivant : gcloud container clusters get-credentials quiz-cluster --zone us-central1-b --project <Project-ID>
.
Copiez la commande dans Cloud Shell et appuyez sur Entrée.
Vous pouvez également cliquer sur Exécuter dans Cloud Shell, puis appuyer sur Entrée.
Listez les pods dans le cluster :
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.
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.
Dans l'éditeur de code Cloud Shell, cliquez sur Ouvrir l'éditeur, puis ouvrez frontend/Dockerfile
.
Copiez le contenu suivant et collez-le dans frontend/Dockerfile
:
Ce script comprend une série de commandes Dockerfile.
La première commande, FROM gcr.io/google_appengine/jetty9
, lance la création d'une image Docker personnalisée avec, pour point de départ, l'image Jetty 9 de Google App Engine, gcr.io/google_appengine/jetty9
.
La deuxième commande, VOLUME /tmp
, crée un volume dans le système de fichiers du conteneur, avec le chemin d'accès à /tmp
.
La troisième commande (ADD ./quiz-frontend-0.0.1.jar /app.jar)
ajoute le fichier Jar de l'interface (uiz-frontend-0.0.1.jar
), lequel a été généré par le processus d'empaquetage Maven dans le cadre du processus de compilation.
La quatrième et dernière commande, CMD java -jar /app.jar
, s'exécute lorsque le conteneur est ouvert.
La création du Dockerfile du backend suit le même processus que pour l'interface, sauf que le fichier jar
est ajouté au backend.
Dans l'éditeur de code Cloud Shell, ouvrez backend/Dockerfile
.
Copiez le contenu suivant et collez-le dans backend/Dockerfile
:
Dans Cloud Shell, cliquez sur Ouvrir le terminal, puis saisissez la commande suivante pour créer l'image Docker de l'interface :
Les fichiers sont transférés dans Cloud Storage, puis une image Docker est créée et stockée dans Container Registry. Cette opération prend quelques secondes.
Créez une image Docker backend :
Dans la console, cliquez sur le menu de navigation, puis sur Container Registry. Les deux dossiers suivants doivent s'afficher : quiz-frontend et quiz-backend.
Cliquez sur quiz-frontend. Vous devriez voir le nom de l'image (un hachage), des tags (les plus récents) et d'autres détails.
Dans cette section, vous allez modifier les fichiers yaml
du modèle qui contiennent les spécifications de ressources de déploiement et de service Kubernetes, puis créer ces ressources dans le cluster Kubernetes Engine.
Dans l'éditeur de code, ouvrez le fichier frontend-deployment.yaml
. 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 |
---|---|
[PROJET_GCLOUD] | ID du projet GCP (pour afficher l'ID du projet, saisissez echo $PROJET_GCLOUD dans Cloud Shell) |
[BUCKET_GCLOUD] | ID du bucket Cloud Storage utilisé en tant que bucket multimédia dans votre projet. L'ID du bucket est [GCP_Project_ID]-media . |
[FRONTEND_IMAGE_IDENTIFIER] |
Image de l'interface identifiée au format gcr.io/[ID_Projet_GCP]/quiz-frontend
|
Ne remplacez que les valeurs entourées par des crochets []
.
Le fichier YAML obtenu ressemble à ceci :
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.
Ouvrez le fichier backend-deployment.yaml
et remplacez les espaces réservés dans le fichier backend-deployment.yaml
par les valeurs suivantes :
Nom de l'espace réservé | Valeur |
---|---|
[PROJET_GCLOUD] | ID du projet GCP (ou utilisez echo $GCLOUD_PROJECT ) |
[BUCKET_GCLOUD] | ID du bucket Cloud Storage utilisé en tant que bucket multimédia dans votre projet. Il s'agit du même bucket que celui utilisé dans frontend-deployment.yaml . (l'ID de bucket est [GCP_Project_ID]-media ). |
[BACKEND_IMAGE_IDENTIFIER] |
Image du backend identifiée au format gcr.io/[ID_PROJET_GCP]/quiz-backend
|
Le déploiement de quiz-backend provisionne une instance dupliquée de l'image Docker du backend dans les pods Kubernetes, sur un des trois nœuds du cluster Kubernetes Engine.
Enregistrez le fichier.
Examinez le contenu du fichier frontend-service.yaml
.
Dans Cloud Shell, provisionnez le déploiement de l'interface de Quiz :
Provisionnez le déploiement du backend de Quiz :
Provisionnez le service de l'interface de Quiz :
Chaque commande provisionne des ressources dans Kubernetes Engine. Cette opération prend quelques minutes.
Dans cette section, vous allez examiner les pods et le service déployés, et accéder à l'application Quiz.
Dans la console, cliquez sur le menu de navigation > Kubernetes Engine > Charges de travail. Les deux éléments suivants doivent s'afficher : quiz-frontend
et quiz-backend
.
Vous pouvez constater que le pod est en cours de création ou d'ores et déjà opérationnel.
Cliquez sur quiz-frontend pour afficher un aperçu de quiz-frontend
.
Faites défiler la page jusqu'à Pods gérés.
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 processus de service soit terminé. Un point de terminaison d'adresse IP doit s'afficher lorsque le service est prêt.
Dans la section Services associés, sous Points de terminaison, sélectionnez l'adresse IP et ouvrez la page dans un nouvel onglet du navigateur.
Effectuez un test pour vérifier que l'application fonctionne comme prévu.
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 :
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 2020 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.
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
One lab at a time
Confirm to end all existing labs and start this one