
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
Create a Kubernetes cluster
/ 20
Configure and Install Jenkins
/ 20
Create the production and canary deployments
/ 30
Build for the 'new-feature' branch
/ 10
Deploying a canary release
/ 10
Deploying to production
/ 10
Dans cet atelier, vous allez apprendre à configurer un pipeline de livraison continue en exécutant Jenkins
dans Kubernetes Engine. Jenkins est le serveur d'automatisation incontournable pour les développeurs qui doivent intégrer régulièrement du code dans un dépôt partagé. La solution que vous allez créer dans cet atelier est illustrée dans le diagramme suivant :
Dans le Centre d'architecture Cloud, consultez Jenkins sur Kubernetes Engine pour en savoir plus sur l'exécution de Jenkins dans Kubernetes.
Dans cet atelier, vous apprendrez à exécuter Jenkins dans Kubernetes en effectuant les tâches suivantes :
Cet atelier est d'un niveau avancé. Pour le suivre, vous devez au moins connaître les principes de base de la programmation shell, de Kubernetes et de Jenkins. Les ateliers suivants vous aideront à être rapidement opérationnel :
Une fois que vous êtes prêt, faites défiler la page pour en savoir plus sur Kubernetes, Jenkins et la livraison continue.
Kubernetes Engine est la version Google Cloud hébergée de Kubernetes
, un puissant gestionnaire de clusters et système d'orchestration pour les conteneurs. Kubernetes est un projet Open Source qui peut être exécuté sur de nombreux environnements différents : des ordinateurs portables aux clusters multinœuds haute disponibilité, en passant par des machines virtuelles et des solutions Bare Metal. Comme indiqué précédemment, les applications Kubernetes sont basées sur des conteneurs
. Ce sont des applications légères comprenant toutes les dépendances et bibliothèques nécessaires à leur exécution. Grâce à cette structure sous-jacente, les applications Kubernetes sont hautement disponibles, sécurisées et faciles à déployer. C'est le framework idéal pour les développeurs cloud.
Jenkins est un serveur d'automatisation Open Source qui vous permet d'orchestrer en souplesse vos pipelines de compilation, de test et de déploiement. Avec Jenkins, les développeurs peuvent itérer rapidement des projets sans avoir à se soucier des frais supplémentaires parfois associés à la livraison continue.
Comparé à un déploiement standard basé sur des machines virtuelles (VM), le déploiement de Jenkins dans Kubernetes Engine offre des avantages considérables dans le cadre de la configuration d'un pipeline de livraison continue.
Lorsque votre processus de compilation utilise des conteneurs, un même hôte virtuel peut exécuter des jobs sur plusieurs systèmes d'exploitation. Kubernetes Engine fournit des exécuteurs de build éphémères
qui sont utilisés uniquement en cas d'exécution active des builds, ce qui libère des ressources pour les autres tâches du cluster telles que les traitements par lot. L'autre avantage des exécuteurs de build éphémères est la rapidité, car ils se lancent en quelques secondes.
En outre, Kubernetes Engine inclut l'équilibreur de charge global de Google, qui vous offre la possibilité d'automatiser le routage du trafic Web vers vos instances. L'équilibreur de charge traite la terminaison SSL et utilise une adresse IP globale configurée avec le réseau backbone de Google. Associé à votre interface Web, cet équilibreur de charge permet de toujours guider les utilisateurs le plus rapidement possible vers une instance d'application.
Maintenant que vous en avez appris un peu plus sur Kubernetes, sur Jenkins et sur la façon dont ils interagissent dans un pipeline CD, découvrons comment créer un pipeline de ce type.
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 :
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 :
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.
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
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.
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
Cliquez sur Suivant.
Accédez aux pages suivantes :
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
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 :
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET :
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 :
Résultat :
gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Cette étape peut prendre plusieurs minutes. Les champs d'application supplémentaires autorisent l'accès de Jenkins à Cloud Source Repositories et à Google Container Registry.
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour vérifier la tâche exécutée. Si le cluster Kubernetes a correctement été créé, vous recevrez une note d'évaluation.
Dans cet atelier, vous allez installer Jenkins à partir du dépôt Charts à l'aide de Helm. Helm est un gestionnaire de paquets qui facilite la configuration et le déploiement des applications Kubernetes. Une fois Jenkins installé, vous pourrez créer votre pipeline CI/CD.
Lors de l'installation de Jenkins, vous pouvez utiliser un fichier values
comme modèle pour fournir les valeurs nécessaires à la configuration.
Vous allez utiliser un fichier values
personnalisé pour configurer automatiquement votre cloud Kubernetes et ajouter les plug-ins nécessaires suivants :
Cela permettra à Jenkins d'associer votre cluster à votre projet GCP.
Cette commande peut prendre quelques minutes pour s'exécuter.
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour vérifier la tâche exécutée. Si le chart Jenkins a correctement été configuré, vous recevrez une note d'évaluation.
Running
(En cours d'exécution) et que l'état du conteneur est "READY" (Prêt) :Exemple de résultat :
Vous devez obtenir le résultat suivant :
Exemple de résultat :
Vous utilisez le plug-in Kubernetes afin que nos nœuds de construction soient automatiquement lancés si nécessaire lorsque le maître Jenkins les demande. Une fois leur travail terminé, ces nœuds sont arrêtés automatiquement et leurs ressources sont restituées au pool de ressources du cluster.
Notez que ce service expose les ports 8080
et 50000
à tous les pods correspondant au sélecteur (selector
). Cela expose les ports d'enregistrement de l'interface utilisateur Web et du compilateur/de l'agent Jenkins dans le cluster Kubernetes. De plus, le service jenkins-ui
est exposé via une adresse IP de cluster, et donc inaccessible depuis l'extérieur du cluster.
admin
et le mot de passe généré automatiquement.Jenkins est maintenant configuré dans votre cluster Kubernetes. Il gérera les pipelines CI/CD automatisés que vous allez créer dans les sections qui suivent.
Vous allez déployer l'exemple d'application gceme
dans votre pipeline de déploiement continu. Cette application est codée en langage Go et se situe dans le répertoire sample-app du dépôt. Lorsque vous exécutez le binaire gceme sur une instance Compute Engine, l'application affiche les métadonnées de cette dernière dans une fiche info.
L'application s'apparente à un microservice proposant deux modes de fonctionnement.
Vous allez déployer l'application dans deux environnements différents :
kubectl apply
:Tester la tâche terminée
Cliquez sur Vérifier ma progression pour vérifier la tâche exécutée. Si les déploiements ont correctement été créés, vous recevrez une note d'évaluation.
Par défaut, seule une instance répliquée de l'interface est déployée. Avec la commande kubectl scale
, assurez-vous qu'au moins quatre instances répliquées s'exécutent en permanence.
Exemple de résultat :
Collez l'adresse IP externe dans un navigateur pour afficher la fiche info, qui se présente comme suit :
Afin de vérifier que les deux services fonctionnent, ouvrez l'adresse IP externe de l'interface dans votre navigateur.
Vérifiez la version du service à l'aide de la commande suivante (qui devrait renvoyer "1.0.0") :
Vous venez de déployer l'exemple d'application. Vous allez maintenant configurer un pipeline pour déployer vos modifications de manière continue et fiable.
gceme
et déployez-la dans un dépôt Cloud Source Repositories :Vous pouvez ignorer l'avertissement. Ce dépôt ne vous sera pas facturé.
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour vérifier la tâche exécutée. Si vous avez réussi à créer le dépôt source, vous recevez une note d'évaluation.
[EMAIL_ADDRESS]
par votre adresse e-mail Git et [USERNAME]
par votre nom d'utilisateur Git :Configurez vos identifiants de sorte que Jenkins puisse accéder au dépôt de code. Les identifiants du compte de service de votre cluster permettront à Jenkins de télécharger le code à partir de Cloud Source Repositories.
Dans l'interface utilisateur Jenkins, cliquez sur Manage Jenkins (Gérer Jenkins) dans le menu de navigation de gauche, puis sur Security > Credentials (Sécurité > Identifiants).
Cliquez sur System (Système).
Cliquez sur Global credentials (unrestricted) (Identifiants globaux (illimités)).
Cliquez sur Add Credentials (Ajouter des identifiants) en haut à droite.
Sélectionnez Google Service Account from metadata (Compte de service Google à partir des métadonnées) depuis le menu déroulant Kind (Genre), puis cliquez sur Create (Créer).
Les identifiants globaux ont été ajoutés. Le nom associé aux identifiants correspond à l'ID de projet
qui se trouve dans la section DÉTAILS DE CONNEXION
de l'atelier.
http://cd-jenkins:8080
.cd-jenkins-agent:50000
.Dans l'interface utilisateur Jenkins, suivez les étapes ci-dessous pour configurer un job de pipeline.
Cliquez sur Dashboard > New Item (Tableau de bord > Nouvel élément) dans le panneau de gauche.
Nommez le projet sample-app, puis choisissez l'option Multibranch Pipeline (Pipeline multibranche) et cliquez sur OK.
Sur la page suivante, dans la section Branch Sources (Sources des branches), sélectionnez Git dans le menu déroulant Add Source (Ajouter une source).
Collez l'adresse HTTPS clone URL (URL de clone HTTPS) du dépôt sample-app de Cloud Source Repositories dans le champ Project Repository (Dépôt du projet). Remplacez [PROJECT_ID]
par votre ID de projet :
Dans le menu déroulant Credentials (Identifiants), sélectionnez le nom des identifiants que vous avez créés lors de l'ajout de votre compte de service aux étapes précédentes.
Sous la section Scan Multibranch Pipeline Triggers (Analyser les déclencheurs du pipeline multibranche), cochez la case Periodically if not otherwise run (Périodiquement, s'il ne s'exécute pas autrement), puis définissez la valeur Interval (Intervalle) sur 1 minute.
La configuration du job doit se présenter comme suit :
Une fois que vous avez suivi cette procédure, un job nommé Branch indexing
(Indexation des branches) s'exécute. Il s'agit d'un métajob qui identifie les branches de votre dépôt et vérifie qu'aucune modification n'a été introduite dans les branches existantes. Si vous cliquez sur "sample-app" en haut à gauche, le job master
s'affiche.
Vous venez de créer un pipeline Jenkins. Vous allez maintenant créer l'environnement de développement pour l'intégration continue.
Les branches de développement représentent un ensemble d'environnements dans lesquels vos développeurs testent les modifications qu'ils apportent au code avant qu'elles ne soient intégrées sur le site en ligne. Ces environnements sont des versions réduites de votre application, mais vous devez les déployer avec les mêmes mécanismes que l'environnement en ligne.
Pour créer un environnement de développement à partir d'une branche de fonctionnalités, vous pouvez transférer la branche en question vers le serveur Git et laisser à Jenkins le soin de déployer votre environnement.
Le code du fichier Jenkinsfile
qui définit ce pipeline utilise la syntaxe Groovy de pipeline Jenkins. L'ensemble d'un pipeline de compilation peut ainsi être défini dans un seul fichier Jenkinsfile
qui accompagne votre code source. Les pipelines offrent des fonctionnalités extrêmement utiles telles que le chargement en parallèle, et ils requièrent l'approbation manuelle de l'utilisateur.
Pour que le pipeline fonctionne comme prévu, vous devez indiquer l'identifiant de votre projet dans le fichier Jenkinsfile
.
vi
:Ajoutez la valeur PROJECT_ID
dans REPLACE_WITH_YOUR_PROJECT_ID
. La valeur PROJECT_ID
correspond à l'ID de votre projet, qui se trouve dans la section DÉTAILS DE CONNEXION
de l'atelier. Vous pouvez également exécuter gcloud config get-value project
pour y accéder.
Définissez la valeur CLUSTER_ZONE
sur gcloud config get compute/zone
.
Jenkinsfile
, appuyez sur la touche Échap, puis (si vous utilisez vi
) saisissez :Pour illustrer un changement dans l'application, vous allez faire passer la couleur des fiches gceme du bleu à l'orange.
html.go
:<div class="card blue">
par ce qui suit :html.go
, appuyez sur Échap, puis saisissez :main.go
:Modifiez-la comme suit :
Vous lancerez ainsi une compilation de votre environnement de développement.
Une fois la modification déployée dans le dépôt Git, accédez à l'interface utilisateur Jenkins. Celle-ci indique que votre compilation a été lancée pour la branche new-feature
. La prise en compte des modifications peut demander jusqu'à une minute.
kubectl --namespace=new-feature apply...
dans le résultat de la compilation. La branche new-feature est à présent déployée dans votre cluster.Si vous n'avez rien vu apparaître dans Build Executor
, ne vous inquiétez pas. Il suffit d'accéder à la page d'accueil Jenkins > sample app. Vérifiez que le nouveau pipeline new-feature
a été créé.
localhost
et laissez le proxy kubectl
la transférer à votre service :Vous recevrez en réponse "2.0.0", ce qui correspond à la version en cours d'exécution.
Il se peut que vous receviez une erreur semblable à celle-ci :
curl
. Continuez lorsque vous obtenez le résultat suivant :Vous venez de configurer l'environnement de développement. Vous allez maintenant exploiter les connaissances acquises durant le module précédent et déployer une version Canary pour tester une nouvelle fonctionnalité.
Vous avez vérifié que votre application exécute le dernier code de l'environnement de développement. Vous allez maintenant déployer ce code dans l'environnement Canary.
2.0.0
.Et voilà ! Vous avez déployé une version Canary. Vous allez maintenant déployer la nouvelle version en production.
Maintenant que notre version Canary est publiée et que nous n'avons reçu aucune réclamation de client, nous pouvons déployer toute notre flotte de production.
Dans Jenkins, vous devriez voir que le pipeline maître a démarré.
1.0.0
apparaître, essayez de réexécuter les commandes ci-dessus. Pour les arrêter, appuyez sur Ctrl+C.Exemple de résultat :
Vous pouvez aussi accéder au site sur lequel l'application gceme présente les fiches d'information. La couleur de la fiche est passée du bleu à l'orange.
Exemple de résultat :
Voici quelques questions à choix multiples qui vous permettront de mieux maîtriser les concepts abordés lors de cet atelier. Répondez-y du mieux que vous le pouvez.
Vous avez terminé.
Excellent travail ! Vous venez de déployer votre application en production.
Notre atelier pratique sur le déploiement et l'utilisation de Jenkins dans Kubernetes Engine en vue de créer un pipeline de livraison continue/déploiement continu se termine ici. Vous avez eu l'occasion de déployer un outil DevOps important dans Kubernetes Engine et de le configurer pour l'utiliser en production. Vous avez travaillé avec l'outil de ligne de commande kubectl et avec des configurations de déploiement dans des fichiers YAML, et vous savez un peu mieux comment créer des pipelines Jenkins pour un processus de développement/déploiement. Grâce à ces exercices pratiques, vous devriez être en mesure d'exploiter ces outils dans vos propres activités DevOps.
Cet atelier d'auto-formation fait partie des quêtes Kubernetes in the Google Cloud, Cloud Architecture et DevOps Essentials. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez une quête, vous obtenez un badge 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 à n'importe quelle quête contenant cet atelier pour obtenir immédiatement les crédits associés. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.
Continuez sur votre lancée en suivant l'atelier Hello Node Kubernetes ou l'un des ateliers Google Cloud Skills Boost suivants :
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 : 20 septembre 2023
Dernier test de l'atelier : 20 septembre 2023
Copyright 2025 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