AI per l'ingegneria delle piattaforme con GKE e Gemini CLI

1. Introduzione

Questo lab fornisce un'introduzione tecnica all'utilizzo della CLI Gemini e del server GKE Model Context Protocol (MCP) per la gestione dell'infrastruttura. Nella gestione tradizionale di GKE, gli operatori traducono manualmente i requisiti dell'infrastruttura in comandi gcloud e le definizioni delle applicazioni in manifest YAML scritti. Questo lab mostra un approccio diverso: l'utilizzo di un'interfaccia interattiva che colma il divario tra l'intento del linguaggio naturale e l'esecuzione tecnica su Google Kubernetes Engine (GKE). Questo cambiamento fa parte di una tendenza più ampia nel platform engineering, in cui l'attenzione si sposta dalla creazione di script di automazione rigidi alla gestione di agenti intelligenti in grado di gestire i dettagli sfumati delle operazioni dell'infrastruttura.

Concetti principali

  • Platform engineering: si tratta della pratica di creare e gestire strumenti e workflow interni che consentono agli sviluppatori di software di gestire la propria infrastruttura senza dover essere esperti di ogni servizio cloud sottostante. L'obiettivo è ridurre l'attrito tecnico mantenendo coerenza e sicurezza. Creando un percorso standardizzato, i team della piattaforma assicurano che gli sviluppatori di applicazioni possano eseguire il deployment in modo sicuro e rapido, mentre il team della piattaforma mantiene il controllo della governance e dei costi.
  • Gemini CLI: si tratta di un'interfaccia a riga di comando che ti consente di interagire con i modelli Gemini direttamente dal terminale. A differenza di un chatbot standard basato sul web, la CLI è progettata per esistere all'interno del tuo ambiente di sviluppo, il che semplifica l'integrazione dell'AI nei flussi di lavoro esistenti basati su shell. Ti consente di reindirizzare l'output di altri comandi direttamente nel modello ed eseguire le istruzioni senza uscire dall'ambiente del terminale.
  • Model Context Protocol (MCP): MCP è uno standard aperto che consente a un modello di AI di connettersi a strumenti o origini dati specifici. Senza MCP, un modello AI conosce solo ciò su cui è stato addestrato e non può vedere le tue risorse specifiche. Con il server GKE MCP, la CLI Gemini può eseguire query attive sull'API del tuo progetto Google Cloud, ispezionare lo stato dei tuoi cluster ed eseguire comandi per tuo conto. Funge da ponte tra il motore di ragionamento del modello e l'API GKE effettiva.

Obiettivi del lab

Alla fine di questa sessione sarai in grado di:

  1. Configura l'ambiente:accedi a Cloud Shell e autentica l'estensione GKE MCP per consentire a Gemini CLI di interagire con le tue risorse Google Cloud.
  2. Progettazione dell'infrastruttura:utilizza prompt interattivi per determinare le configurazioni del cluster ottimali in base a costi, overhead di gestione e requisiti del carico di lavoro.
  3. Gestione delle risorse:genera, controlla e implementa manifest Kubernetes (deployment, servizi e così via) utilizzando il linguaggio naturale.
  4. Analisi operativa:utilizza la capacità dell'AI di aggregare log ed eventi per identificare la causa principale degli errori di deployment e suggerire correzioni tecniche specifiche.

2. Configurazione del progetto

Prima che Gemini CLI possa interagire con le tue risorse, è necessario un ambiente Google Cloud configurato correttamente. Questa configurazione garantisce che il tuo progetto disponga delle autorizzazioni corrette e che tutti i servizi di backend necessari siano pronti a ricevere richieste dal tuo agente di AI.

Apri Cloud Shell

Per questo lab, utilizzeremo Cloud Shell, un ambiente terminale basato su browser fornito da Google Cloud. Utilizziamo Cloud Shell perché è preconfigurato con tutti gli strumenti di cui abbiamo bisogno, tra cui Google Cloud CLI (gcloud), kubectl e Gemini CLI, risparmiandoti il tempo di installarli sulla tua macchina locale.

  1. Vai alla console Google Cloud.
  2. Guarda l'intestazione in alto a destra della console e fai clic sul pulsante Attiva Cloud Shell (simile a un prompt del terminale >_).
  3. Si aprirà una sessione del terminale nella parte inferiore della finestra del browser. Se richiesto, fai clic su Continua.

Seleziona un progetto

Nel terminale Cloud Shell, assicurati di lavorare nel progetto corretto.

  1. Seleziona un progetto esistente o creane uno nuovo appositamente per questo lab nella console.
  2. Prendi nota dell'ID progetto. Puoi impostare il progetto nella shell corrente eseguendo: gcloud config set project [YOUR_PROJECT_ID]

Abilita API

Le funzionalità di Kubernetes e AI non sono abilitate per impostazione predefinita per i nuovi progetti. L'attivazione di queste API inizializza i servizi Google Cloud sottostanti che gestiscono la gestione dei container, i modelli generativi e la registrazione centralizzata.

👉💻 Esegui questo comando in Cloud Shell per abilitarle. Questa procedura potrebbe richiedere un minuto.

gcloud services enable \
    container.googleapis.com \
    generativelanguage.googleapis.com \
    cloudresourcemanager.googleapis.com \
    logging.googleapis.com
  • container.googleapis.com: l'API Google Kubernetes Engine. È necessario per qualsiasi operazione a livello di cluster, inclusa la creazione, l'aggiornamento e l'eliminazione dei cluster.
  • generativelanguage.googleapis.com::l'API che consente alla CLI Gemini di comunicare con i modelli linguistici di grandi dimensioni Gemini per la generazione e il ragionamento del testo.
  • cloudresourcemanager.googleapis.com: richiesto per consentire all'agente di esaminare i metadati a livello di progetto, verificare gli ID progetto e gestire le autorizzazioni IAM.
  • logging.googleapis.com::essenziale per la risoluzione dei problemi, in quanto consente al server MCP di recuperare e analizzare i log dai container in caso di problemi.

3. Configurazione di Gemini CLI

Cloud Shell include Gemini CLI per impostazione predefinita, il che lo rende l'ambiente ideale per questo workflow. Il primo passaggio consiste nel configurarlo in modo che funga da "agente" con l'autorità e gli strumenti specifici necessari per gestire l'ambiente GKE. Questo passaggio di configurazione è fondamentale perché stabilisce la connessione sicura tra la logica dell'AI e la tua infrastruttura cloud effettiva.

Avvia Gemini CLI

Nel terminale Cloud Shell, crea una nuova directory di lavoro ed esegui Gemini CLI. Inizia una sessione in cui puoi avere una conversazione continua con il modello. A differenza dei comandi una tantum, la modalità interattiva mantiene una finestra di contesto che ricorda le istruzioni precedenti e lo stato del progetto.

👉💻 Esegui i seguenti comandi:

mkdir -p ~/gke-lab
cd ~/gke-lab
gemini

Una volta all'interno, testa la consapevolezza di base dello strumento per assicurarti che possa vedere il tuo ambiente:

  • 👉💬 Prompt: Which Google Cloud project is currently active in this shell?

Potrebbe chiederti di confermare l'esecuzione del comando gcloud, che puoi accettare.

Puoi uscire dall'interfaccia in qualsiasi momento digitando /quit.

Nota: se riscontri problemi di capacità con Gemini 2.5 Pro, puoi passare a Gemini 2.5 Flash aprendo Gemini con

gemini -m gemini-2.5-flash

o utilizzando il

/model

nell'interfaccia.

Connetti l'estensione GKE MCP

Per impostazione predefinita, Gemini CLI è uno strumento generico e non ha conoscenze specifiche su come interagire con i tuoi cluster. Devi installare l'estensione GKE MCP. Questa estensione funge da plug-in che definisce un insieme specifico di strumenti e funzioni, ad esempio "elenca cluster" o "ottieni log pod", che il modello può chiamare quando deve eseguire un'attività.

👉💻 Esegui i seguenti comandi per installare l'estensione GKE e riaprire Gemini CLI:

gemini extensions install https://github.com/GoogleCloudPlatform/gke-mcp.git
gemini

Puoi verificare che sia stato attivato correttamente inserendo nuovamente Gemini CLI e digitando:

/extensions

4. Provisioning dell'infrastruttura

Il provisioning dell'infrastruttura tradizionale spesso comporta la consultazione di documentazione complessa o la scrittura di centinaia di righe di codice di configurazione. Utilizzando un agente, puoi concentrarti sulla descrizione dei tuoi requisiti e lasciare che l'AI gestisca la traduzione tecnica nelle chiamate API corrette. Questa sezione mostra come utilizzare l'agente sia per la fase di pianificazione sia per la creazione effettiva dell'ambiente GKE.

Pianificazione e confronto tecnici

Prima di creare un cluster, devi scegliere un'architettura adatta alle tue esigenze. GKE offre due modalità principali: Standard, in cui hai il controllo completo dei nodi sottostanti, e Autopilot, in cui Google gestisce i nodi e paghi in base alle risorse richieste dai tuoi pod. Proviamo una query semplice per capire le differenze tra i due e decidere quale utilizzare per un caso d'uso specifico.

  • 👉💬 Prompt: 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.

Prova a chiedere altre idee per le infrastrutture. Cosa succede se esegui il deployment di workload di inferenza AI, hai bisogno di qualcosa su larga scala o hai vincoli di rete complessi? Sperimenta con altri prompt.

Esegui la creazione del cluster

Dopo aver esaminato il confronto e fatto una scelta, puoi chiedere all'agente di creare il cluster. L'agente analizzerà la tua richiesta e chiamerà lo strumento create_cluster dal server GKE MCP per eseguire il deployment di un ambiente pronto per la produzione in base a questi requisiti.

  • 👉💬 Prompt: 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.

Nota: il provisioning del cluster GKE prevede la configurazione del control plane, delle reti private virtuali e delle configurazioni iniziali dei nodi, che in genere richiede 8-10 minuti. Non chiudere la sessione di Gemini CLI.

Puoi chiedere lo stato del cluster, che utilizzerà di nuovo il server GKE MCP per restituire informazioni aggiornate.

  • 👉💬 Prompt: Is the new GKE cluster created and ready to use, yet?

5. Deployment e convalida

Uno dei principali vantaggi dell'utilizzo di un agente AI per l'ingegneria della piattaforma è la sua capacità di eseguire controlli e audit "pre-volo" sulle configurazioni. Anziché eseguire il deployment di un manifest e attendere che non vada a buon fine, puoi utilizzare l'agente per verificare che il tuo file YAML sia tecnicamente valido e rispetti le norme di sicurezza della tua organizzazione prima che raggiunga il cluster.

Genera manifest

Chiedi all'agente di creare un manifest di deployment. Poiché l'agente comprende la gestione delle versioni e lo schema dell'API Kubernetes, genererà YAML formattato correttamente e includerà tutti i campi necessari per un deployment riuscito.

  • 👉💬 Prompt: 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

Convalida tecnica e controllo della sicurezza

La creazione manuale di file YAML spesso comporta configurazioni eseguite con più privilegi del necessario o prive di funzionalità di affidabilità di base. Puoi utilizzare l'agente per controllare il manifest appena creato per assicurarti che soddisfi gli standard moderni di sicurezza e resilienza.

  • 👉💬 Prompt: 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.

Esecuzione del deployment

Una volta completato il provisioning del cluster della sezione precedente, chiedi a Gemini CLI di applicare la configurazione al nuovo cluster. L'agente utilizzerà i suoi strumenti per comunicare con il server API Kubernetes e creare le risorse richieste.

  • 👉💬 Prompt: Deploy the audited Nginx manifest to the 'gke-lab' cluster. Use the kubectl command to do this.

Controllo dello stato in tempo reale

Anziché eseguire più comandi kubectl get pods o kubectl describe, puoi chiedere all'agente un riepilogo in linguaggio naturale dello stato di avanzamento del deployment.

  • 👉💬 Prompt: Are the Nginx pods running? Provide the external IP address assigned to the LoadBalancer once it is available.

Non riesci ad andare avanti?

Se i servizi Nginx non vengono implementati correttamente, prova a risolvere il problema con Gemini CLI. È lì per aiutarti.

  • 👉💬 Prompt: The Nginx deployment doesn't start up as expected. Can you help troubleshoot?

6. Manutenzione e risoluzione dei problemi

Uno degli aspetti più preziosi di una piattaforma basata sull'AI è la sua capacità di eseguire operazioni "Day 2". Quando un sistema non funziona, la difficoltà spesso consiste nel cercare tra migliaia di righe di log per trovare l'unico errore che conta. Utilizzando Gemini CLI con MCP, puoi consentire all'agente di aggregare log, eventi e messaggi di stato per fornirti una diagnosi di alto livello e un percorso specifico per la risoluzione.

Fault Injection manuale

Per testare la capacità diagnostica dell'agente, creeremo intenzionalmente uno stato di errore. In una scheda del terminale separata, esegui questo comando per aggiornare il deployment con un'immagine container inesistente. In questo modo viene simulato un errore umano comune: un errore di battitura in un tag contenitore.

👉💻 Esegui questo comando al di fuori di Gemini CLI:

kubectl set image deployment/nginx nginx=nginx:invalid-version-xyz123

Nota: il deployment potrebbe non essere chiamato esattamente "nginx". Puoi verificarlo eseguendo

kubectl get deployments

Kubernetes tenterà di estrarre questa immagine, non riuscirà perché non riesce a trovare il tag e i pod entreranno nello stato ImagePullBackOff.

Analisi con Gemini CLI

Torna alla sessione di Gemini CLI. Anziché eseguire manualmente la ricerca nella console Cloud Logging, chiedi all'agente di trovare e spiegare l'errore.

  • 👉💬 Prompt: 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.

Che cosa succede: l'interfaccia a riga di comando di Gemini rileva che il deployment non è integro. Dopodiché, utilizzerà gli strumenti disponibili per ispezionare i pod non riusciti. L'agente identificherà l'errore di pull, spiegherà che il tag non è valido e ti suggerirà di ripristinare un'immagine valida nota.

Manutenzione e valutazione del rischio

La manutenzione della piattaforma prevede di anticipare gli upgrade e le deprecazioni. Puoi chiedere all'agente di agire come SRE e valutare l'integrità e la longevità del tuo cluster.

  • 👉💬 Prompt: 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.

Ciò potrebbe comportare la chiamata di Gemini agli strumenti del server GKE MCP, come gli strumenti di stato e suggerimenti del cluster.

7. Conclusione

Questo lab ha dimostrato un nuovo modo di interagire con l'infrastruttura cloud. Integrando un agente AI direttamente nel flusso di lavoro del terminale tramite Gemini CLI e MCP, non dovrai più scrivere manualmente i comandi, ma potrai dirigere l'intento. Questo approccio consente ai team della piattaforma di scalare le proprie competenze fornendo un'interfaccia intelligente che gestisce i dettagli ripetitivi e soggetti a errori della gestione di Kubernetes, mentre l'ingegnere umano si concentra sull'architettura di alto livello e sulla risoluzione dei problemi.

Riepilogo del lab

  • Connettività:hai connesso correttamente Gemini CLI all'API GKE utilizzando il Model Context Protocol, il che consente al modello AI di avere visibilità diretta sullo stato del tuo progetto.
  • Infrastruttura:hai utilizzato il linguaggio naturale per progettare e eseguire il provisioning di un cluster GKE, evitando la necessità di memorizzare flag CLI complessi.
  • Sviluppo:hai generato, controllato per la sicurezza e distribuito risorse Kubernetes senza modifiche manuali dei file YAML, assicurandoti che le best practice siano state seguite fin dall'inizio.
  • Operazioni:hai utilizzato l'AI per eseguire l'analisi della causa principale di un deployment non riuscito, riducendo significativamente il tempo medio di ripristino consentendo all'AI di riepilogare log ed eventi.

Esegui la pulizia

Per evitare addebiti continui di Google Cloud per le risorse create in questo lab, puoi chiedere all'agente di eliminare il cluster.

Nota: salta questo passaggio se prevedi di riutilizzare il cluster GKE per un altro lab.

  • 👉💬 Prompt: Delete the 'gke-lab' cluster and any associated resources.

Passaggi successivi

Consigli per ulteriori letture: