Points de contrôle
Enable services, create an artifact registry and the GKE cluster
/ 20
Create the Git repositories
/ 20
Create the container image with Cloud Build
/ 20
Create the Continuous Integration (CI) Pipeline
/ 20
Create the Test Environment and CD Pipeline
/ 20
Créer un pipeline Google Kubernetes Engine à l'aide de Cloud Build
- GSP1077
- Présentation
- Objectifs
- Préparation
- Tâche 1 : Initialiser l'atelier
- Tâche 2 : Créer les dépôts Git dans Cloud Source Repositories
- Tâche 3 : Créer une image de conteneur avec Cloud Build
- Tâche 4 : Créer un pipeline d'intégration continue (CI)
- Tâche 5 : Créer un environnement de test et un pipeline CD
- Tâche 6 : Examiner le pipeline Cloud Build
- Tâche 7 : Tester le pipeline complet
- Tâche 8 : Tester le rollback
- Félicitations !
GSP1077
Présentation
Dans cet atelier, vous allez créer un pipeline CI/CD qui compile automatiquement une image de conteneur à partir d'un code validé, stocke l'image dans Artifact Registry, met à jour un fichier manifeste Kubernetes dans un dépôt Git, puis déploie l'application sur Google Kubernetes Engine à l'aide de ce fichier manifeste.
Pour cet atelier, vous allez créer deux dépôts Git :
- le dépôt de l'application ("app") qui contient le code source de l'application ;
- le dépôt de l'environnement ("env") qui contient les fichiers manifestes pour le déploiement Kubernetes.
Lorsque vous envoyez une modification au dépôt "app", le pipeline Cloud Build exécute des tests, compile une image de conteneur, puis transfère cette image vers Artifact Registry. Ensuite, Cloud Build met à jour le fichier manifeste de déploiement et l'envoie au dépôt "env". Cette opération déclenche un autre pipeline Cloud Build qui applique le fichier manifeste au cluster GKE et, si l'opération réussit, le stocke dans une autre branche du dépôt "env".
Les dépôts "app" et "env" sont séparés, car leur utilisation et leur cycle de vie diffèrent. Les principaux utilisateurs du dépôt "app" sont des personnes réelles, et ce dépôt est dédié à une application spécifique. Les principaux utilisateurs du dépôt "env" sont des systèmes automatisés (comme Cloud Build), et ce dépôt peut être partagé par plusieurs applications. Le dépôt "env" peut contenir plusieurs branches, chacune d'elles correspondant à un environnement spécifique (vous n'utiliserez que l'environnement de production dans cet atelier) et faisant référence à une image de conteneur spécifique, ce qui n'est pas le cas avec le dépôt "app".
Une fois cet atelier terminé, vous disposerez d'un système dans lequel vous pourrez facilement :
- distinguer les déploiements ayant abouti et échoué en consultant l'historique de Cloud Build ;
- accéder au fichier manifeste actuellement utilisé en consultant la branche de production du dépôt "env" ;
- effectuer un rollback vers une version précédente en exécutant à nouveau la compilation Cloud Build correspondante.
Objectifs
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Créer des clusters Kubernetes Engine
- Créer des dépôts dans Cloud Source Repositories
- Déclencher une compilation Cloud Build à partir de Cloud Source Repositories
- Automatiser les tests et publier une image de conteneur déployable via Cloud Build
- Gérer les ressources déployées dans un cluster Kubernetes Engine à l'aide de Cloud Build
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 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.
Tâche 1 : Initialiser l'atelier
- Dans Cloud Shell, définissez l'ID et le numéro de votre projet. Enregistrez-les en tant que variables
PROJECT_ID
etPROJECT_NUMBER
:
Dans la tâche suivante, vous allez préparer votre projet Google Cloud en activant les API nécessaires, en configurant Git dans Cloud Shell et en téléchargeant l'exemple de code utilisé plus tard dans l'atelier.
- Exécutez la commande suivante pour activer les API pour GKE, Cloud Build, Cloud Source Repositories et Container Analysis :
- Créez un dépôt Docker Artifact Registry nommé "my-repository" dans la région
pour stocker vos images de conteneurs :
- Créez un cluster GKE pour déployer l'exemple d'application de cet atelier :
- Si vous n'avez jamais utilisé Git dans Cloud Shell, configurez-le en indiquant votre nom et votre adresse e-mail. Git les utilisera pour vous identifier en tant qu'auteur des commits que vous allez créer dans Cloud Shell (si vous n'avez pas de compte GitHub, vous pouvez simplement saisir vos informations actuelles ; vous n'avez pas besoin de compte pour cet atelier) :
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 2 : Créer les dépôts Git dans Cloud Source Repositories
Dans cette tâche, vous allez créer les deux dépôts Git (hello-cloudbuild-app et hello-cloudbuild-env), puis initialiser hello-cloudbuild-app avec un exemple de code.
- Dans Cloud Shell, exécutez la commande suivante pour créer les deux dépôts Git :
- Clonez l'exemple de code depuis GitHub :
- Configurez Cloud Source Repositories en tant que dépôt distant :
Le code que vous venez de cloner contient une simple application "Hello World".
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 3 : Créer une image de conteneur avec Cloud Build
Le code que vous avez cloné contient déjà le Dockerfile suivant :
Vous pouvez utiliser ce Dockerfile pour créer une image de conteneur avec Cloud Build, puis la stocker dans Artifact Registry.
- Dans Cloud Shell, créez une compilation Cloud Build basée sur le dernier commit à l'aide de la commande suivante :
Cloud Build diffuse les journaux générés par la création de l'image de conteneur vers votre terminal lorsque vous exécutez cette commande.
- Une fois la compilation terminée, accédez à Artifact Registry > Dépôts dans la console Cloud pour vérifier que votre image de conteneur est bien disponible dans Artifact Registry. Cliquez sur my-repository.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 4 : Créer un pipeline d'intégration continue (CI)
Dans cette tâche, vous allez configurer Cloud Build afin qu'il exécute automatiquement un petit test unitaire, qu'il génère l'image de conteneur, puis qu'il la transfère vers Artifact Registry. L'envoi d'un nouveau commit à Cloud Source Repositories déclenche automatiquement ce pipeline. Le fichier cloudbuild.yaml (déjà inclus dans le code) correspond à sa configuration.
- Dans la console Cloud, accédez à Cloud Build > Déclencheurs.
- Cliquez sur Créer un déclencheur.
- Dans le champ "Nom", saisissez
hello-cloudbuild
. - Sous Événement, sélectionnez Déployer sur une branche.
- Sous Source, sélectionnez le dépôt hello-cloudbuild-app et la branche
.* (n'importe quelle branche)
. - Sous Configuration de la compilation, sélectionnez Fichier de configuration Cloud Build.
- Dans le champ Emplacement du fichier de configuration Cloud Build, saisissez
cloudbuild.yaml
après la barre oblique (/). - Cliquez sur Créer.
Une fois le déclencheur créé, revenez à Cloud Shell. Vous devez maintenant envoyer le code de l'application à Cloud Source Repositories pour déclencher le pipeline CI dans Cloud Build.
- Pour lancer ce déclencheur, exécutez la commande suivante :
-
Dans la console Cloud, accédez à Cloud Build > Tableau de bord.
-
Vous devriez constater qu'une compilation est en cours d'exécution ou s'est achevée récemment. Vous pouvez cliquer sur son nom pour suivre son exécution et examiner ses journaux.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 5 : Créer un environnement de test et un pipeline CD
Cloud Build est également utilisé pour le pipeline de livraison continue. Le pipeline s'exécute chaque fois qu'un commit est envoyé à la branche candidate du dépôt hello-cloudbuild-env. Le pipeline applique la nouvelle version du fichier manifeste au cluster Kubernetes et, si l'opération réussit, il copie le fichier manifeste dans la branche de production. Ce processus a les propriétés suivantes :
- La branche candidate correspond à l'historique des tentatives de déploiement.
- La branche de production correspond à l'historique des déploiements réussis.
- Dans Cloud Build, une vue permet d'identifier les déploiements réussis et en échec.
- Vous pouvez effectuer un rollback vers n'importe quel déploiement précédent en exécutant à nouveau la compilation correspondante dans Cloud Build. Lors d'un rollback, la branche de production est également mise à jour afin de refléter fidèlement l'historique des déploiements.
Vous allez ensuite modifier le pipeline d'intégration continue pour mettre à jour la branche candidate du dépôt hello-cloudbuild-env, ce qui déclenchera le pipeline de livraison continue.
Autoriser Cloud Build à accéder à GKE
Pour déployer l'application dans votre cluster Kubernetes, Cloud Build doit disposer du rôle Identity and Access Management "Développeur sur Kubernetes Engine".
- Dans Cloud Shell, exécutez la commande suivante :
Vous devez initialiser le dépôt hello-cloudbuild-env avec deux branches (production et candidate) et un fichier de configuration Cloud Build décrivant le processus de déploiement.
Pour commencer, vous devez cloner le dépôt hello-cloudbuild-env et créer la branche de production. Pour l'instant, le dépôt ne contient aucun fichier.
- Dans Cloud Shell, exécutez la commande suivante :
- Vous devez ensuite copier le fichier cloudbuild-delivery.yaml disponible dans le dépôt hello-cloudbuild-app et valider la modification :
Le fichier cloudbuild-delivery.yaml
décrit le processus de déploiement qui doit être exécuté dans Cloud Build. Ce processus comporte deux étapes :
- Cloud Build applique le fichier manifeste au cluster GKE.
- Si l'opération réussit, Cloud Build copie le fichier manifeste sur la branche de production.
- Créez une branche candidate, puis transférez les deux branches vers Cloud Source Repositories pour qu'elles soient accessibles :
- Accordez le rôle IAM "Rédacteur de dépôt source" au compte de service Cloud Build pour le dépôt hello-cloudbuild-env :
Créer le déclencheur pour le pipeline de livraison continue
- Dans la console Cloud, accédez à Cloud Build > Déclencheurs.
- Cliquez sur Créer un déclencheur.
- Dans le champ "Nom", saisissez
hello-cloudbuild-deploy
. - Sous Événement, sélectionnez Déployer sur une branche.
- Sous Source, sélectionnez le dépôt hello-cloudbuild-env et la branche
^candidate$
. - Sous Configuration de la compilation, sélectionnez Fichier de configuration Cloud Build.
- Dans le champ Emplacement du fichier de configuration Cloud Build, saisissez
cloudbuild.yaml
après la barre oblique (/). - Cliquez sur Créer.
Modifier le pipeline d'intégration continue afin de déclencher le pipeline de livraison continue
Maintenant, vous allez ajouter certaines étapes au pipeline d'intégration continue pour qu'il génère une nouvelle version du fichier manifeste Kubernetes, puis l'envoie au dépôt hello-cloudbuild-env afin de déclencher le pipeline de livraison continue.
- Copiez la version étendue du fichier cloudbuild.yaml pour le dépôt "app" :
Le fichier cloudbuild-trigger-cd.yaml est une version étendue du fichier cloudbuild.yaml. Il ajoute les étapes mentionnées ci-dessous, qui permettent de générer le nouveau fichier manifeste Kubernetes et de déclencher le pipeline de livraison continue.
sed
pour générer le modèle de manifeste. En situation réelle, vous pouvez plutôt utiliser un outil dédié comme Kustomize ou Skaffold. Ces outils offrent un plus grand contrôle sur la génération des modèles de manifeste.
- Validez les modifications et déployez-les sur Cloud Source Repositories :
Cette opération déclenche le pipeline d'intégration continue dans Cloud Build.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 6 : Examiner le pipeline Cloud Build
- Dans la console Cloud, accédez à Cloud Build > Tableau de bord.
- Cliquez sur le déclencheur hello-cloudbuild-app pour suivre son exécution et examiner ses journaux. La dernière étape de ce pipeline consiste à envoyer le nouveau fichier manifeste au dépôt hello-cloudbuild-env, ce qui déclenche le pipeline de livraison continue.
- Revenez au tableau de bord principal.
- Vous devriez constater qu'une compilation est en cours d'exécution ou s'est achevée récemment pour le dépôt hello-cloudbuild-env. Vous pouvez cliquer sur son nom pour suivre son exécution et examiner ses journaux.
Tâche 7 : Tester le pipeline complet
Le pipeline CI/CD complet est maintenant configuré. Testez-le d'un bout à l'autre.
- Dans la console Cloud, accédez à Kubernetes Engine > Passerelles, services et entrées.
La liste ne doit contenir qu'un seul service : hello-cloudbuild. Ce service a été créé par la compilation de livraison continue qui vient de s'exécuter.
- Cliquez sur le point de terminaison associé au service hello-cloudbuild. Vous devriez voir la mention "Hello World!". Si le point de terminaison n'apparaît pas ou si vous constatez une erreur de l'équilibreur de charge, patientez quelques minutes afin que l'équilibreur de charge puisse terminer son initialisation. Si nécessaire, cliquez sur Actualiser pour mettre à jour la page.
- Dans Cloud Shell, remplacez "Hello World" par "Hello Cloud Build" dans l'application et dans le test unitaire :
- Validez la modification et déployez-la sur Cloud Source Repositories :
- Cette opération déclenche le pipeline CI/CD complet.
Attendez quelques minutes, puis rechargez l'application dans votre navigateur. Vous devriez maintenant voir la mention "Hello Cloud Build!".
Tâche 8 : Tester le rollback
Dans cette tâche, vous allez effectuer un rollback vers la version de l'application qui affiche le message "Hello World!".
- Dans la console Cloud, accédez à Cloud Build > Tableau de bord.
- Cliquez sur le lien Tout afficher sous Historique de compilation pour le dépôt hello-cloudbuild-env.
- Cliquez sur la deuxième compilation la plus récente disponible.
- Cliquez sur Recompiler.
Une fois la compilation terminée, rechargez l'application dans votre navigateur. Vous devriez maintenant voir à nouveau le message "Hello World!".
Félicitations !
Vous pouvez désormais utiliser Cloud Build pour créer des pipelines d'intégration continue et effectuer un rollback avec GKE sur Google Cloud.
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 26 janvier 2024
Dernier test de l'atelier : 19 janvier 2024
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.