1. Introduction
Cet atelier fournit une introduction technique à l'utilisation de Gemini CLI et du serveur GKE Model Context Protocol (MCP) pour la gestion de l'infrastructure. Dans la gestion GKE traditionnelle, les opérateurs traduisent manuellement les exigences d'infrastructure en commandes gcloud et les définitions d'application en manifestes YAML écrits. Cet atelier présente une approche différente : l'utilisation d'une interface interactive qui fait le lien entre l'intention en langage naturel et l'exécution technique sur Google Kubernetes Engine (GKE). Cette évolution s'inscrit dans une tendance plus large de l'ingénierie de plate-forme, où l'accent est mis sur la gestion d'agents intelligents capables de gérer les détails nuancés des opérations d'infrastructure, plutôt que sur la création de scripts d'automatisation rigides.
Concepts fondamentaux
- Ingénierie des plates-formes : il s'agit de la pratique consistant à créer et à gérer des outils et des workflows internes permettant aux développeurs de logiciels de gérer leur propre infrastructure sans avoir à être des experts dans chaque service cloud sous-jacent. L'objectif est de réduire les frictions techniques tout en maintenant la cohérence et la sécurité. En créant un chemin d'or standardisé, les équipes de plate-forme s'assurent que les développeurs d'applications peuvent déployer des applications de manière sûre et rapide, tandis que l'équipe de plate-forme conserve le contrôle sur la gouvernance et les coûts.
- Gemini CLI : il s'agit d'une interface de ligne de commande qui vous permet d'interagir avec les modèles Gemini directement depuis votre terminal. Contrairement à un chatbot Web standard, la CLI est conçue pour exister dans votre environnement de développement, ce qui facilite l'intégration de l'IA dans les workflows existants basés sur le shell. Il vous permet de rediriger la sortie d'autres commandes directement vers le modèle et d'exécuter des instructions sans quitter votre environnement de terminal.
- Model Context Protocol (MCP) : MCP est une norme ouverte qui permet à un modèle d'IA de se connecter à des outils ou des sources de données spécifiques. Sans MCP, un modèle d'IA ne connaît que les données sur lesquelles il a été entraîné et ne peut pas voir vos ressources spécifiques. Avec le serveur GKE MCP, Gemini CLI peut interroger activement l'API de votre projet Google Cloud, inspecter l'état de vos clusters et exécuter des commandes en votre nom. Il sert de passerelle entre le moteur de raisonnement du modèle et l'API GKE.
Objectifs de l'atelier
À la fin de cette session, vous saurez :
- Configurer l'environnement : accédez à Cloud Shell et authentifiez l'extension GKE MCP pour permettre à Gemini CLI d'interagir avec vos ressources Google Cloud.
- Conception de l'infrastructure : utilisez des invites interactives pour déterminer les configurations de cluster optimales en fonction des coûts, des frais de gestion et des exigences de charge de travail.
- Gestion des ressources : générez, auditez et déployez des manifestes Kubernetes (déploiements, services, etc.) en langage naturel.
- Analyse opérationnelle : utilisez la capacité de l'IA à agréger les journaux et les événements pour identifier la cause première des échecs de déploiement et suggérer des corrections techniques spécifiques.
2. Configuration du projet
Un environnement Google Cloud correctement configuré est requis avant que Gemini CLI puisse interagir avec vos ressources. Cette configuration garantit que votre projet dispose des autorisations appropriées et que tous les services de backend nécessaires sont prêts à recevoir les requêtes de votre agent d'IA.
Ouvrir Cloud Shell
Pour cet atelier, nous allons utiliser Cloud Shell, un environnement de terminal basé sur un navigateur fourni par Google Cloud. Nous utilisons Cloud Shell, car il est préconfiguré avec tous les outils dont nous avons besoin, y compris Google Cloud CLI (gcloud), kubectl et Gemini CLI. Vous n'avez donc pas besoin de les installer sur votre machine locale.
- Accédez à la console Google Cloud.
- En haut à droite de l'en-tête de la console, cliquez sur le bouton Activer Cloud Shell (il ressemble à une invite de terminal
>_). - Une session de terminal s'ouvre en bas de la fenêtre de votre navigateur. Cliquez sur Continuer si vous y êtes invité.
Sélectionner un projet
Dans le terminal Cloud Shell, assurez-vous de travailler dans le bon projet.
- Sélectionnez un projet existant ou créez-en un spécialement pour cet atelier dans la console.
- Notez l'ID de votre projet. Vous pouvez définir le projet dans votre shell actuel en exécutant la commande suivante :
gcloud config set project [YOUR_PROJECT_ID].
Activer les API
Les fonctionnalités Kubernetes et d'IA ne sont pas activées par défaut pour les nouveaux projets. L'activation de ces API permet d'initialiser les services Google Cloud sous-jacents qui gèrent la gestion des conteneurs, les modèles génératifs et la journalisation centralisée.
👉💻 Exécutez la commande suivante dans Cloud Shell pour les activer. Cette opération peut prendre une minute.
gcloud services enable \
container.googleapis.com \
generativelanguage.googleapis.com \
cloudresourcemanager.googleapis.com \
logging.googleapis.com
- container.googleapis.com: : API Google Kubernetes Engine. Il est requis pour toutes les opérations au niveau du cluster, y compris la création, la mise à jour et la suppression de clusters.
- generativelanguage.googleapis.com: : API qui permet à Gemini CLI de communiquer avec les grands modèles de langage Gemini pour la génération et le raisonnement textuels.
- cloudresourcemanager.googleapis.com: : requis pour que l'agent puisse inspecter les métadonnées au niveau du projet, vérifier les ID de projet et gérer les autorisations IAM.
- logging.googleapis.com: : essentiel pour le dépannage, car il permet au serveur MCP d'extraire et d'analyser les journaux de vos conteneurs en cas de problème.
3. Configurer Gemini CLI
Cloud Shell inclut Gemini CLI par défaut, ce qui en fait l'environnement idéal pour ce workflow. La première étape consiste à le configurer pour qu'il agisse en tant qu'"agent" disposant à la fois de l'autorité et des outils spécifiques nécessaires pour gérer votre environnement GKE. Cette étape de configuration est essentielle, car elle établit la connexion sécurisée entre la logique de l'IA et votre infrastructure cloud réelle.
Démarrer Gemini CLI
Dans votre terminal Cloud Shell, créez un répertoire de travail et exécutez Gemini CLI. Cela démarre une session dans laquelle vous pouvez avoir une conversation continue avec le modèle. Contrairement aux commandes ponctuelles, le mode interactif maintient une fenêtre de contexte qui mémorise vos instructions précédentes et l'état de votre projet.
👉💻 Exécutez les commandes suivantes :
mkdir -p ~/gke-lab
cd ~/gke-lab
gemini

Une fois à l'intérieur, testez la conscience de base de l'outil pour vous assurer qu'il peut voir votre environnement :
- 👉💬 Requête :
Which Google Cloud project is currently active in this shell?
Il peut vous demander de confirmer l'exécution de la commande gcloud, que vous pouvez ensuite accepter.
Vous pouvez quitter l'interface à tout moment en saisissant /quit.
Remarque : Si vous rencontrez des problèmes de capacité avec Gemini 2.5 Pro, vous pouvez passer à Gemini 2.5 Flash en ouvrant Gemini avec
gemini -m gemini-2.5-flash
ou en utilisant le
/model
dans l'interface.
Connecter l'extension MCP GKE
Par défaut, Gemini CLI est un outil à usage général et ne sait pas comment interagir avec vos clusters. Vous devez installer l'extension GKE MCP. Cette extension agit comme un plug-in qui définit un ensemble spécifique d'outils et de fonctions (par exemple, "lister les clusters" ou "obtenir les journaux de pods") que le modèle peut appeler lorsqu'il doit effectuer une tâche.
👉💻 Exécutez les commandes suivantes pour installer l'extension GKE et rouvrir Gemini CLI :
gemini extensions install https://github.com/GoogleCloudPlatform/gke-mcp.git
gemini
Pour vérifier qu'il a été correctement activé, saisissez à nouveau Gemini CLI et tapez :
/extensions
4. Provisionnement de l'infrastructure
Le provisionnement d'infrastructure traditionnel implique souvent de parcourir une documentation complexe ou d'écrire des centaines de lignes de code de configuration. En utilisant un agent, vous pouvez vous concentrer sur la description de vos besoins et laisser l'IA gérer la traduction technique en appels d'API appropriés. Cette section explique comment utiliser l'agent pour la phase de planification et la création de votre environnement GKE.
Planification et comparaison techniques
Avant de créer un cluster, vous devez choisir une architecture qui répond à vos besoins. GKE propose deux modes principaux : Standard, qui vous permet de contrôler entièrement les nœuds sous-jacents, et Autopilot, qui permet à Google de gérer les nœuds et de vous facturer en fonction des ressources demandées par vos pods. Essayons une requête simple pour comprendre les différences entre les deux et réfléchir à celle à utiliser pour un cas d'utilisation spécifique.
- 👉💬 Requête :
I need to run a standard 3-tier web application. Compare GKE Standard and GKE Autopilot. Focus on the operational effort for a small team and the cost structure for small workloads.
Essayez de demander d'autres idées d'infrastructures. Que faire si vous déployez des charges de travail d'inférence d'IA, si vous avez besoin d'une solution à très grande échelle ou si vous avez des contraintes réseau complexes ? Testez d'autres requêtes.
Exécuter la création du cluster
Une fois que vous avez examiné la comparaison et fait votre choix, vous pouvez demander à l'agent de créer le cluster. L'agent analysera votre demande et fera appel à l'outil create_cluster du serveur GKE MCP pour déployer un environnement prêt pour la production en fonction de ces exigences.
- 👉💬 Requête :
Create a GKE Standard zonal cluster named 'gke-lab' in us-central1-a with 1 node with 4 CPUs. The cluster should have Workload Identity enabled.
Remarque : Le provisionnement d'un cluster GKE implique la configuration du plan de contrôle, des réseaux privés virtuels et des configurations de nœuds initiales, ce qui prend généralement entre 8 et 10 minutes. Ne fermez pas votre session Gemini CLI.
Vous pouvez demander l'état du cluster, ce qui utilisera à nouveau le serveur GKE MCP pour renvoyer des informations à jour.
- 👉💬 Requête :
Is the new GKE cluster created and ready to use, yet?
5. Déploiement et validation
L'un des principaux avantages de l'utilisation d'un agent d'IA pour l'ingénierie de plate-forme est sa capacité à effectuer des vérifications et des audits "avant vol" sur vos configurations. Au lieu de déployer un fichier manifeste et d'attendre qu'il échoue, vous pouvez utiliser l'agent pour vérifier que votre fichier YAML est techniquement correct et qu'il respecte les règles de sécurité de votre organisation avant même d'atteindre le cluster.
Générer des fichiers manifestes
Demandez à l'agent de créer un fichier manifeste de déploiement. Comme l'agent comprend le schéma et le versioning de l'API Kubernetes, il génère un fichier YAML correctement mis en forme et incluant tous les champs nécessaires au déploiement.
- 👉💬 Requête :
Generate a Kubernetes YAML manifest for an Nginx web server. I need 3 replicas. Set a memory limit of 256Mi and a CPU limit of 500m. Also, include a Service of type LoadBalancer to make it accessible via the internet. Save the manifest as web-server.yaml
Validation technique et audit de sécurité
La création manuelle de fichiers YAML entraîne souvent des configurations qui s'exécutent avec plus de droits que nécessaire ou qui manquent de fonctionnalités de fiabilité de base. Vous pouvez utiliser l'agent pour auditer le fichier manifeste qu'il vient de créer afin de vous assurer qu'il répond aux normes modernes de sécurité et de résilience.
- 👉💬 Requête :
Review the Nginx manifest you just created. Does it include resource requests (not just limits)? Does it specify a non-root user for the container? Add a Pod Disruption Budget to ensure high availability during cluster maintenance. Make any necessary modifications to the file, and tell me what changes were made.
Exécution du déploiement
Une fois le provisionnement du cluster de la section précédente terminé, demandez à Gemini CLI d'appliquer la configuration à votre nouveau cluster. L'agent utilisera ses outils pour communiquer avec le serveur d'API Kubernetes et créer les ressources demandées.
- 👉💬 Requête :
Deploy the audited Nginx manifest to the 'gke-lab' cluster. Use the kubectl command to do this.
Vérification de l'état en temps réel
Au lieu d'exécuter plusieurs commandes kubectl get pods ou kubectl describe, vous pouvez demander à l'agent un résumé en langage naturel de la progression du déploiement.
- 👉💬 Requête :
Are the Nginx pods running? Provide the external IP address assigned to the LoadBalancer once it is available.
Vous êtes bloqué ?
Si les services Nginx ne semblent pas se déployer correctement, essayez de résoudre le problème avec Gemini CLI. Il est là pour vous aider.
- 👉💬 Requête :
The Nginx deployment doesn't start up as expected. Can you help troubleshoot?
6. Maintenance et dépannage
L'un des aspects les plus intéressants d'une plate-forme basée sur l'IA est sa capacité à effectuer des opérations "Day 2". Lorsqu'un système échoue, le défi consiste souvent à parcourir des milliers de lignes de journaux pour trouver l'erreur qui compte. En utilisant Gemini CLI avec MCP, vous pouvez autoriser l'agent à agréger les journaux, les événements et les messages d'état pour vous fournir un diagnostic général et une procédure de résolution spécifique.
Injection manuelle de défaillances
Pour tester la capacité de diagnostic de l'agent, nous allons intentionnellement créer un état d'échec. Dans un autre onglet de terminal, exécutez cette commande pour mettre à jour votre déploiement avec une image de conteneur qui n'existe pas. Cela simule une erreur humaine courante : une faute de frappe dans une balise de conteneur.
👉💻 Exécutez la commande suivante en dehors de Gemini CLI :
kubectl set image deployment/nginx nginx=nginx:invalid-version-xyz123
Remarque : Il est possible que votre déploiement ne s'appelle pas exactement "nginx". Vous pouvez le vérifier en exécutant
kubectl get deployments
Kubernetes tentera d'extraire cette image, échouera, car il ne trouvera pas le tag, et les pods passeront à l'état ImagePullBackOff.
Analyse avec Gemini CLI
Revenez à votre session Gemini CLI. Au lieu de parcourir manuellement la console Cloud Logging, demandez à l'agent de trouver et d'expliquer l'erreur.
- 👉💬 Requête :
The Nginx deployment on my 'gke-lab' cluster has stopped working. Use your tools to inspect the cluster state, check the recent events, and explain exactly why the pods are failing to start.
Ce qui se passe : Gemini CLI constate que le déploiement n'est pas sain. Il utilisera ensuite les outils disponibles pour inspecter les pods défaillants. L'agent identifiera l'erreur d'extraction, expliquera que le tag n'est pas valide et vous suggérera de revenir à une image fonctionnelle connue.
Maintenance et évaluation des risques
La maintenance de la plate-forme consiste à anticiper les mises à niveau et les abandons. Vous pouvez demander à l'agent d'agir en tant qu'ingénieur en fiabilité du site (SRE) et d'évaluer l'état et la longévité de votre cluster.
- 👉💬 Requête :
Is my cluster 'gke-lab' running the latest version of GKE? Check for available upgrades and let me know if any of my current resources use deprecated APIs that would break during an upgrade.
Gemini peut alors faire appel à des outils de serveur MCP GKE tels que les outils d'état et de recommandation des clusters.
7. Conclusion
Cet atelier vous a montré une nouvelle façon d'interagir avec l'infrastructure cloud. En intégrant un agent IA directement dans votre workflow de terminal via Gemini CLI et MCP, vous êtes passé d'un rédacteur manuel de commandes à un directeur d'intention. Cette approche permet aux équipes de plate-forme de mettre à l'échelle leur expertise en fournissant une interface intelligente qui gère les détails répétitifs et sujets aux erreurs de la gestion Kubernetes, tandis que l'ingénieur humain se concentre sur l'architecture de haut niveau et la résolution de problèmes.
Résumé de l'atelier
- Connectivité : vous avez réussi à connecter Gemini CLI à l'API GKE à l'aide du protocole MCP (Model Context Protocol). Le modèle d'IA a ainsi une visibilité directe sur l'état de votre projet.
- Infrastructure : vous avez utilisé le langage naturel pour concevoir et provisionner un cluster GKE, ce qui vous a évité de mémoriser des options CLI complexes.
- Développement : vous avez généré, audité pour la sécurité et déployé des ressources Kubernetes sans modifier manuellement le fichier YAML, ce qui vous a permis de suivre les bonnes pratiques dès le début.
- Opérations : vous avez utilisé l'IA pour effectuer une analyse des causes premières sur un déploiement défaillant, ce qui a permis de réduire considérablement le délai moyen de récupération en laissant l'IA résumer les journaux et les événements.
Nettoyage
Pour éviter que les ressources créées dans cet atelier soient facturées en permanence sur Google Cloud, vous pouvez demander à l'agent de supprimer le cluster.
Remarque : Ignorez cette étape si vous prévoyez de réutiliser le cluster GKE pour un autre atelier.
- 👉💬 Requête :
Delete the 'gke-lab' cluster and any associated resources.
Étapes suivantes
Lectures recommandées :
- Documentation Gemini CLI : documentation officielle sur Gemini CLI.
- Documentation GKE : page de destination de toute la documentation GKE.
- Ingénierie de plate-forme sur Google Cloud : conseils sur la façon d'aborder l'ingénierie de plate-forme sur Google Cloud.
- IA et machine learning sur GKE : documentation sur l'exécution de charges de travail d'IA/de ML sur GKE.
- Centre d'architecture Google Cloud : conseils et bonnes pratiques pour créer des charges de travail sur Google Cloud.