Présentation
Dans cet atelier, vous allez vous servir de Gemini, un collaborateur optimisé par l'IA intégré à Google Cloud, pour examiner des journaux et configurer un environnement de compilation pour un ensemble de microservices dans Google Kubernetes Engine (GKE).
Cet atelier s'adresse aux ingénieurs de tous niveaux qui travaillent dans un environnement DevOps.
Remarque : Duet AI a été renommé "Gemini", notre modèle nouvelle génération. Cet atelier a été modifié en conséquence. Lorsque vous effectuerez l'atelier, toute référence à Duet AI dans l'interface utilisateur ou la documentation doit être traitée comme l'équivalent de Gemini.
Remarque : Comme il s'agit d'une technologie encore à un stade précoce, il se peut que Gemini génère des résultats qui semblent plausibles, mais qui sont en fait incorrects. Nous vous recommandons de valider tous les résultats de Gemini avant de les utiliser. Pour en savoir plus, consultez Gemini pour Google Cloud et l'IA responsable.
Objectifs
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Créer un cluster GKE avec l'aide de Gemini
- Déployer un ensemble de microservices dans GKE
- Trouver et comprendre des journaux d'application avec l'aide de Gemini
- Utiliser Gemini pour déterminer comment créer un environnement de compilation privé
Préparation
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.
-
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.
Remarque : Pour afficher un menu contenant la liste des produits et services Google Cloud, cliquez sur le menu de navigation en haut à gauche.
Activer Cloud Shell
Cloud Shell est une machine virtuelle qui contient des 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 via une ligne de commande à vos ressources Google Cloud. gcloud
est l'outil de ligne de commande associé à Google Cloud. Il est préinstallé sur Cloud Shell et permet la saisie semi-automatique via la touche Tabulation.
-
Dans Google Cloud Console, dans le volet de navigation, cliquez sur Activer 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. Exemple :

Exemples de commandes
gcloud auth list
(Résultat)
Credentialed accounts:
- <myaccount>@<mydomain>.com (active)
(Exemple de résultat)
Credentialed accounts:
- google1623327_student@qwiklabs.net
gcloud config list project
(Résultat)
[core]
project = <ID_Projet>
(Exemple de résultat)
[core]
project = qwiklabs-gcp-44776a13dea667a6
Tâche 1 : Configurer votre environnement et votre compte pour Gemini
-
Connectez-vous à la console Google Cloud avec vos identifiants d'atelier et ouvrez la fenêtre du terminal Cloud Shell.
-
Pour définir les variables d'environnement pour l'ID de votre projet et la région, exécutez les commandes suivantes dans Cloud Shell :
PROJECT_ID=$(gcloud config get-value project)
REGION={{{project_0.default_region|set at lab start}}}
echo "PROJECT_ID=${PROJECT_ID}"
echo "REGION=${REGION}"
-
Pour enregistrer le compte utilisateur Google connecté dans une variable d'environnement, exécutez la commande suivante :
USER=$(gcloud config get-value account 2> /dev/null)
echo "USER=${USER}"
-
Activez l'API Cloud AI Companion pour Gemini :
gcloud services enable cloudaicompanion.googleapis.com --project ${PROJECT_ID}
-
Pour utiliser Gemini, attribuez les rôles IAM nécessaires à votre compte utilisateur Google Cloud Qwiklabs :
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/cloudaicompanion.user
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/serviceusage.serviceUsageViewer
Une fois ajoutés, ces rôles permettent à l'utilisateur de bénéficier de l'aide de Gemini.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Activer les bonnes API et attribuer les rôles IAM nécessaires
Tâche 2 : Configurer Google Kubernetes Engine
Dans cette tâche, vous allez activer l'API Google Kubernetes Engine (GKE), vous accorder les autorisations nécessaires pour gérer un cluster GKE et créer un cluster.
-
Dans Cloud Shell, exécutez la commande suivante pour activer l'API GKE :
gcloud services enable container.googleapis.com --project ${PROJECT_ID}
-
Pour accorder les autorisations d'administrateur pour GKE à votre compte utilisateur, exécutez la commande suivante :
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/container.admin
Vous pouvez créer un cluster GKE zonal pour exécuter vos microservices. Gemini peut vous indiquer comment faire.
-
Dans la console Google Cloud, si vous ne voyez pas le menu Ouvrir ou fermer le chat Gemini AI (
), actualisez la page.
-
Pour ouvrir le volet Gemini, dans le menu supérieur de la console Google Cloud, cliquez sur Ouvrir ou fermer le chat Gemini AI (
), puis sur Activer, si nécessaire.
-
Cliquez sur Commencer à discuter.
Remarque : Si le bouton Commencer à discuter n'est pas disponible, actualisez la page et rouvrez Gemini.
-
Saisissez la requête suivante dans Gemini, puis cliquez sur Envoyer la requête (
) :
Quelle est la commande gcloud pour créer un cluster GKE zonal avec un nombre de nœuds personnalisé et un type de machine personnalisé ?
Gemini devrait renvoyer une réponse semblable à celle-ci :
gcloud container clusters create <CLUSTER_NAME> \
--project=PROJECT_ID \
--zone=COMPUTE_ZONE \
--num-nodes=NUM_NODES \
--machine-type=MACHINE_TYPE
-
Pour créer un cluster GKE zonal, exécutez la commande suivante :
gcloud container clusters create test \
--project={{{project_0.project_id | set at lab start}}} \
--zone={{{project_0.default_zone | set at lab start}}} \
--num-nodes=3 \
--machine-type=e2-standard-4
La création du cluster prend quelques minutes. Attendez que l'exécution de la commande soit terminée.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Configurer Google Kubernetes Engine
Tâche 3 : Utiliser kubectl pour déployer un ensemble de microservices
Dans cette tâche, vous allez cloner un dépôt contenant le code de plusieurs microservices qui composent une application de boutique en ligne. Vous allez également utiliser kubectl pour déployer ces microservices dans le cluster GKE.
Voici un schéma de l'architecture de l'application :

-
Dans Cloud Shell, exécutez la commande suivante pour cloner le dépôt :
git clone --depth=1 https://github.com/GoogleCloudPlatform/microservices-demo
Ce dépôt contient le code source pour chacun des microservices de l'application.
-
Pour déployer les microservices dans GKE, exécutez les commandes suivantes :
cd ~/microservices-demo
kubectl apply -f ./release/kubernetes-manifests.yaml
-
Vérifiez l'état du déploiement en répétant la commande suivante jusqu'à ce que tous les microservices soient disponibles :
kubectl get deployments
Lorsqu'un microservice est disponible, la valeur associée dans la colonne Available (Disponible) passe à 1. Le résultat de la commande kubectl get deployments
ressemblera à ceci :
NAME READY UP-TO-DATE AVAILABLE AGE
adservice 1/1 1 1 94s
cartservice 1/1 1 1 96s
checkoutservice 1/1 1 1 97s
currencyservice 1/1 1 1 95s
emailservice 1/1 1 1 97s
frontend 1/1 1 1 97s
loadgenerator 1/1 1 1 95s
paymentservice 1/1 1 1 96s
productcatalogservice 1/1 1 1 96s
recommendationservice 1/1 1 1 97s
redis-cart 1/1 1 1 94s
shippingservice 1/1 1 1 95s
L'accès à l'application se fait par son adresse IP externe.
-
Pour déterminer l'URL de l'application, exécutez la commande suivante :
echo "http://$(kubectl get service frontend-external -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')"
Remarque : Il peut s'écouler une minute avant que l'adresse IP externe soit disponible. Exécutez la commande jusqu'à ce que l'URL contienne une adresse IP.
-
Pour ouvrir l'application dans un onglet de navigateur, maintenez la touche Ctrl (Windows et Linux) ou Commande (macOS) enfoncée, puis cliquez sur l'URL dans Cloud Shell.
La page d'accueil de l'application s'ouvre. Vous pouvez essayer l'application.
Remarque : Si un pop-up indiquant La connexion n'est pas sécurisée s'affiche, cliquez sur Accéder au site.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Utiliser kubectl pour déployer un ensemble de microservices
Tâche 4 : Se servir de Gemini pour comprendre les journaux des charges de travail dans GKE
Imaginez que vous êtes ingénieur DevOps et que l'on vous a attribué un ensemble de microservices existant à gérer. Ces microservices sont exécutés dans un cluster GKE. Pour comprendre l'environnement, vous décidez d'examiner les journaux des différents microservices.
Dans cette tâche, vous allez vous servir de Gemini pour créer des requêtes afin de rechercher des journaux précis et d'expliquer des entrées de journal.
-
Dans la barre de titre de la console Google Cloud, saisissez Explorateur de journaux dans le champ Recherche, puis cliquez sur Explorateur de journaux dans les résultats de recherche.
-
Saisissez la requête suivante dans Gemini, puis cliquez sur Envoyer la requête (
) :
Quelle requête pour l'explorateur de journaux permet de rechercher des journaux de pods dans un espace de noms appelé "default" dans un cluster GKE appelé "test" ?
En réponse, vous devriez obtenir une requête semblable à celle-ci :
resource.type="k8s_container"
resource.labels.cluster_name="test"
resource.labels.namespace_name="default"
Remarque : Si la requête fournie par Gemini diffère de la réponse ci-dessus, vous pouvez utiliser la requête ci-dessus.
-
Dans la zone Requête, collez la requête, puis cliquez sur Exécuter la requête.
Les messages de journal sont filtrés pour que seuls les messages provenant du cluster GKE test soient affichés. Vous pouvez maintenant examiner les entrées de journal.
-
Pour vous renseigner sur une entrée de journal, développez-la, puis cliquez sur Explication de cette entrée de journal.
Par exemple, si vous cliquez sur le bouton d'explication pour une entrée de journal GET /product/0PUK6V6EV0
, Gemini pourrait vous renvoyer une réponse semblable à celle-ci :
• Il s'agit d'une entrée de journal provenant d'un conteneur Kubernetes appelé main.
• Le conteneur fait partie d'un pod appelé loadgenerator-84cc74dcd-jf6dr dans l'espace de noms default.
• Le pod s'exécute sur le cluster test dans la zone us-west1-a.
• L'entrée de journal est une requête HTTP à /product/0PUK6V6EV0 dont le traitement a pris 49 millisecondes.
• La requête a entraîné une réponse 200 OK et l'envoi de 40 octets de données au client.
Après avoir examiné les explications des entrées de journal pour vos charges de travail, vous décidez de configurer l'infrastructure de sorte à créer les futures images de conteneurs de votre équipe sur un ensemble de nœuds de calcul privés sans accès à Internet.
Tâche 5 : Se servir de Gemini pour créer un environnement de compilation privé pour les images de conteneurs
Dans cette tâche, vous allez vous servir de Gemini pour déterminer comment créer et exécuter un environnement de compilation privé.
Vous êtes responsable de la configuration d'un système de compilation pour un projet sensible. Vous avez entendu dire que Cloud Build est un service permettant d'effectuer des compilations sur Google Cloud et qu'il utilise des pools de nœuds de calcul pour les exécuter.
-
Dans le chat Gemini, saisissez la requête suivante pour en savoir plus sur les pools de nœuds de calcul :
Qu'est-ce qu'un pool de nœuds de calcul Cloud Build ?
Le début de la réponse de Gemini pourrait être semblable à l'exemple ci-dessous :
Un pool de nœuds de calcul Cloud Build est un groupe de machines virtuelles servant à exécuter vos compilations. Les pools de nœuds de calcul sont créés dans une région et une zone précises, et peuvent être privés ou publics.
Les pools privés sont accessibles uniquement à votre projet et offrent plusieurs avantages, dont :
• Isolation : vos compilations seront exécutées sur des machines dédiées, ce qui signifie qu'elles ne seront pas affectées par l'exécution d'autres charges de travail dans le même projet.
• Sécurité : les pools privés sont plus sécurisés que les pools publics, puisqu'ils ne sont pas accessibles à d'autres projets.
• Performances : les pools privés peuvent offrir de meilleures performances que les pools publics, car ils ne sont pas partagés avec d'autres projets.
En raison de la sécurité qu'ils offrent, les pools de nœuds de calcul privés peuvent être un choix pertinent pour votre projet. Ce serait encore mieux si vous pouviez empêcher les compilations d'accéder à l'Internet public.
-
Dans le chat Gemini, saisissez la requête suivante :
Est-il possible de créer un pool de nœuds de calcul privé qui n'a pas accès à l'Internet public ?
La réponse de Gemini pourrait être semblable à celle-ci :
Oui, vous pouvez créer un pool de nœuds de calcul privé qui n'a pas accès à l'Internet public. C'est ce qu'on appelle un "pool privé sans sortie publique".
Pour créer un pool privé sans sortie publique, vous pouvez utiliser l'option --no-public-egress lorsque vous créez le pool.
C'est parfait, cette configuration devrait être très sécurisée. Vous réalisez alors que les nœuds de calcul d'un pool privé n'auront pas accès aux dépôts de packages publics tels que PyPI. Sachant que vous devrez donc héberger des packages privés, vous vous demandez si vous pouvez utiliser Artifact Registry.
-
Dans le chat Gemini, saisissez la requête suivante :
Si je crée un pool privé sans sortie publique, est-ce que je peux utiliser Artifact Registry pour héberger mes packages de façon privée et y accéder depuis un pool privé ?
La réponse de Gemini pourrait être semblable à celle-ci :
Oui, vous pouvez utiliser Artifact Registry pour héberger vos packages de façon privée et y accéder depuis un pool privé sans sortie publique.
Pour ce faire, vous devrez créer un dépôt Artifact Registry privé et accorder à votre pool privé l'accès à ce dépôt. Vous pouvez le faire en ajoutant le compte de service de votre pool privé en tant que membre du dépôt et en lui attribuant le rôle de lecteur Artifact Registry.
Une fois que vous avez créé le dépôt et accordé l'accès à votre pool privé, vous pouvez transférer vos packages sur le dépôt, puis les extraire à partir de votre pool privé.
Très bien. Demandons maintenant à Gemini de nous fournir la commande gcloud CLI permettant de créer le pool privé.
-
Dans le chat Gemini, saisissez la requête suivante :
Quelle est la commande gcloud pour créer un pool de nœuds de calcul privé sans sortie publique ?
La commande fournie par Gemini pourrait être semblable à celle-ci :
gcloud builds worker-pools create POOL_NAME \
--project=PROJECT_ID \
--region=REGION \
--no-public-egress
-
Pour créer le pool privé, exécutez la commande suivante :
gcloud builds worker-pools create pool-test \
--project={{{project_0.project_id|set at lab start}}} \
--region={{{project_0.default_region|set at lab start}}} \
--no-public-egress
L'environnement de l'atelier renverra probablement un message d'erreur comme celui-ci :
ERROR: (gcloud.builds.worker-pools.create) FAILED_PRECONDITION: project "{{{project_0.project_id|set at lab start}}}" is unable to use private pools
Vous pouvez ignorer ce message d'erreur dans cet atelier.
Remarque : Les pools privés sont désactivés dans l'environnement de l'atelier pour le moment. Dans le cas d'un projet en dehors de cet environnement, la commande pour créer un pool privé devrait fonctionner.
Demandons à présent à Gemini comment créer le dépôt Docker privé.
-
Dans le chat Gemini, saisissez la requête suivante :
Comment puis-je utiliser gcloud pour créer un dépôt Docker privé pour les images de conteneurs dans Artifact Registry ?
La réponse de Gemini pourrait inclure une commande gcloud CLI semblable à celle-ci :
gcloud artifacts repositories create REPOSITORY \
--repository-format=docker \
--location=REGION \
--description="DESCRIPTION"
où :
• REPOSITORY est le nom du dépôt Docker privé à créer.
• REGION est la région dans laquelle créer le dépôt Docker privé.
• DESCRIPTION est une description du dépôt Docker privé.
-
Pour créer le dépôt, exécutez la commande suivante :
gcloud artifacts repositories create my-repo \
--repository-format=docker \
--location={{{project_0.default_region|set at lab start}}} \
--description="My private Docker repository"
Le dépôt est créé.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un dépôt
Terminer l'atelier
Une fois l'atelier terminé, cliquez sur End Lab (Terminer l'atelier). Qwiklabs supprime les ressources que vous avez utilisées, puis efface le compte.
Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez le nombre d'étoiles correspondant à votre note, saisissez un commentaire, puis cliquez sur Submit (Envoyer).
Le nombre d'étoiles que vous pouvez attribuer à un atelier correspond à votre degré de satisfaction :
- 1 étoile = très mécontent(e)
- 2 étoiles = insatisfait(e)
- 3 étoiles = ni insatisfait(e), ni satisfait(e)
- 4 étoiles = satisfait(e)
- 5 étoiles = très satisfait(e)
Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.
Pour soumettre des commentaires, suggestions ou corrections, veuillez utiliser l'onglet Support (Assistance).
Félicitations !
Dans cet atelier, vous avez appris à effectuer les tâches suivantes :
- Créer un cluster GKE avec l'aide de Gemini
- Déployer un ensemble de microservices dans GKE
- Trouver et comprendre des journaux d'application avec l'aide de Gemini
- Utiliser Gemini pour déterminer comment créer un environnement de compilation privé
Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms de société et de produit peuvent être des marques des sociétés auxquelles ils sont associés.