Crea e modifica un cluster GKE con Gemini per Google Cloud

Questo tutorial mostra come utilizzare Gemini per Google Cloud, un collaboratore basato sull'AI di Google Cloud, per creare, testare e modificare un cluster Google Kubernetes Engine (GKE) in Autopilot. Scoprirai come Gemini può aiutarti a eseguire il deployment di una semplice app nel cluster e creare un periodo di manutenzione giornaliera per l'app. Questo tutorial è rivolto a ingegneri con qualsiasi livello di esperienza.

Obiettivi

  • Esplora i vari servizi Google che puoi utilizzare per eseguire il deployment di un'app in GKE ponendo domande basate sul contesto a Gemini.
  • Chiedi a Gemini di fornire comandi che consentono di eseguire il deployment di un'app di base in un cluster GKE.
  • Crea, esplora e modifica il cluster GKE utilizzando Gemini per spiegare e generare i comandi shell.

Prodotti Google Cloud utilizzati

Questo tutorial utilizza i seguenti prodotti Google Cloud fatturabili. Utilizza il Calcolatore prezzi per generare una stima dei costi in base all'utilizzo previsto.

  • GKE. GKE è un servizio Kubernetes gestito che ti consente di eseguire il deployment e gestire applicazioni containerizzate su larga scala. Per informazioni sui prezzi, consulta i prezzi di GKE.

  • Gemini. Gemini è un collaboratore sempre attivo di Google Cloud che offre assistenza basata sull'AI generativa a un'ampia gamma di utenti, tra cui sviluppatori e data scientist. Per offrire un'esperienza di assistenza integrata, Gemini è incorporato in molti prodotti Google Cloud.

Prima di iniziare

  1. Abilita l'API GKE.
  2. Assicurati che Gemini sia configurato per il tuo account utente e il tuo progetto Google Cloud.

Esplora Kubernetes in Google Cloud

Nell'esempio seguente, supponiamo che tu sia un amministratore dell'infrastruttura con la responsabilità di configurare l'infrastruttura per un team che sviluppa un'applicazione web. L'organizzazione nel suo complesso ha standardizzato l'uso di container e Kubernetes, perciò il team vuole capire come eseguire la sua applicazione web su Kubernetes in Google Cloud. Inoltre, il team vuole ridurre il più possibile l'overhead per la gestione dell'infrastruttura.

Nella console Google Cloud, puoi chattare con Gemini per ricevere assistenza. Utilizzando il riquadro Gemini, inserisci i prompts, ovvero domande o istruzioni che descrivono l'aiuto che ti serve, e Gemini restituisce le risposte. Gemini non usa i prompt o le risposte come dati per addestrare il modello. Per saperne di più, consulta In che modo Gemini per Google Cloud utilizza i tuoi dati.

Per ulteriori informazioni su come scrivere prompt per generare risposte corrette, consulta Scrivere prompt migliori per Gemini.

Per chiedere a Gemini di aiutarti a decidere come eseguire Kubernetes in Google Cloud, segui questi passaggi:

  1. Nella barra degli strumenti della console Google Cloud, fai clic su spark Apri Gemini.

  2. Nel riquadro Gemini, inserisci la seguente richiesta in base ai tuoi requisiti e alle tue preferenze, quindi fai clic su Invia:

    How can I run Kubernetes on Google Cloud without having to own
    management of nodes and the control plane?
    

    La risposta di Gemini potrebbe essere la seguente:

    To run Kubernetes on Google Cloud without having to own management of
    nodes and the control plane, you can use Google Kubernetes Engine
    (Google Kubernetes Engine (GKE)) in Autopilot. In Autopilot mode, Google manages the
    control plane and system components for you, and also manages your
    worker nodes.
    
  3. Inserisci una domanda aggiuntiva. Ad esempio, se vuoi standardizzare la creazione di cluster GKE in modalità Autopilot utilizzando Terraform, inserisci il prompt seguente:

    Can you use Terraform to provision GKE clusters in Autopilot mode?
    

    La risposta di Gemini potrebbe essere la seguente:

    Yes, you can use Terraform to provision GKE clusters in Autopilot
    mode. Terraform is a tool that can be used to create and manage
    infrastructure on Google Cloud Platform. Find more information
    for your question here:
    https://cloud.google.com/blog/products/containers-kubernetes/partner-devops-and-security-solutions-for-gke-autopilot
    
  4. (Facoltativo) Se la cronologia chat non è pertinente alle domande successive, puoi reimpostarla: nel riquadro Gemini, fai clic sull'icona Elimina, quindi seleziona Reimposta chat.

Crea un cluster GKE in modalità Autopilot

Tieni presente che non hai familiarità con l'esecuzione di Kubernetes con GKE in modalità Autopilot. Prima di eseguire il provisioning di un cluster per i tuoi sviluppatori, decidi di testare GKE in modalità Autopilot. In questa sezione, chiederai a Gemini di aiutarti a creare ed eseguire un'app web di test in un cluster GKE in modalità Autopilot.

  1. Nel riquadro Gemini, inserisci il seguente prompt e fai clic su Invia:

    How do I create a GKE Autopilot cluster?
    

    Gemini risponde con le istruzioni per creare un cluster utilizzando la console Google Cloud e Google Cloud CLI.

  2. Quando vedi una risposta che include valori segnaposto come CLUSTER_NAME, REGION e PROJECT_ID, l'aggiunta di queste informazioni al prompt potrebbe portare a risposte ancora più utili. Perfeziona nuovamente il prompt con maggiori dettagli:

    What is the command to create a GKE Autopilot cluster in my current
    project named gemini-demo in the us-central region using the gcloud CLI?
    

    Gemini restituisce una risposta simile alla seguente:

    gcloud container clusters create-auto gemini-demo --region us-central1
    

    Per utilizzare il comando fornito da Gemini, apri Cloud Shell ed esegui il comando gcloud precedente nella risposta.

    Dopo qualche minuto, il tuo cluster GKE Autopilot sarà pronto per l'uso.

Deployment di un'applicazione web di esempio

Ora che hai creato un cluster GKE in modalità Autopilot, ti consigliamo di testare l'esecuzione di un'applicazione web di esempio simile all'applicazione che il tuo team eseguirà su questa infrastruttura. Internamente, vedi la seguente immagine container di Google aggiunta ai preferiti per testare un'applicazione web containerizzata: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0.

  1. Nel riquadro Gemini, inserisci il seguente prompt e fai clic su Invia:

    What is the kubectl command to create a deployment called
    hello-server for the image us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0?
    

    Gemini restituisce una risposta simile a:

    To create a deployment called hello-server for the image
    us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0, you
    can use the following kubectl command:
    
    kubectl create deployment hello-server --image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
    

    Esegui il comando kubectl precedente in Cloud Shell.

  2. Dopo aver creato il server web, decidi di testare il provisioning di un bilanciatore del carico davanti al server web per esporlo a internet.

    Nel riquadro Gemini, inserisci il seguente prompt e fai clic su Invia:

    What is the kubectl command to expose this deployment on port 80 with
    a load balancer?
    

    Gemini restituisce una risposta simile alla seguente:

    To expose the hello-server deployment on port 80 with a load
    balancer, you can use the following kubectl expose command:
    
    kubectl expose deployment hello-server \
      --type LoadBalancer \
      --port 80 \
      --target-port 8080
    

    L'esecuzione di questo comando creerà un bilanciatore del carico di Compute Engine per il container.

    Anche se fornire più contesto è sempre utile, nota come Gemini è riuscito a estrarre il nome del deployment hello-server dalla cronologia delle conversazioni senza che fosse incluso nel prompt.

  3. Ora vuoi vedere se il server web è in esecuzione e gestisce le richieste correttamente. Per visualizzare l'applicazione di cui hai eseguito il deployment, devi recuperare l'indirizzo IP esterno dal servizio Kubernetes che hai creato.

    Digita il seguente prompt:

    What is the kubectl command to see the external IP address
    associated with this load balancer?
    

    Gemini restituisce una risposta simile alla seguente:

    To see the external IP associated with a load balancer, you can use
    the following kubectl command:
    
    kubectl get service hello-server -w
    
    This will output the name of the service, the type of service, the
    cluster IP address, the external IP address, and the ports that the
    service is listening on.
    

    Dopo alcuni minuti, l'esecuzione del comando kubectl precedente genererà un risultato simile al seguente:

    NAME           TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE
    hello-server   LoadBalancer   34.118.227.57   35.225.15.112   80:31473/TCP   6m18s
    

    Ora puoi accedere alla tua applicazione web in esecuzione su GKE utilizzando il valore restituito per EXTERNAL-IP.

Pianifica una strategia di upgrade del cluster

Ora hai testato il caso d'uso principale del tuo team in un cluster GKE in modalità Autopilot. Tuttavia, prima di far utilizzare al team GKE Autopilot, devi configurare un orario per la manutenzione o gli upgrade del cluster.

Sai che i modelli di traffico degli utenti dell'applicazione web del tuo team sono diurni. Dato che Gemini ha comunicato che GKE Autopilot gestisce la manutenzione del cluster per te, devi indicare che questa manutenzione avviene al di fuori delle ore di traffico più intenso della tua applicazione web.

  1. Digita il seguente prompt:

    How can I configure periods of time where GKE Autopilot won't
    perform maintenance or upgrades on my cluster nodes?
    

    Gemini restituisce una risposta simile alla seguente:

    To configure periods of time where GKE Autopilot won't perform
    maintenance or upgrades on your cluster nodes, you can use
    maintenance windows and exclusions.
    
    Maintenance windows are periods of time when GKE Autopilot is allowed
    to perform maintenance and upgrades on your cluster nodes. You can
    specify a maintenance window for your cluster when you create it, or
    you can update an existing cluster to specify a maintenance
    window.
    
    Maintenance exclusions are periods of time when GKE Autopilot is not
    allowed to perform maintenance or upgrades on your cluster nodes. You
    can create a maintenance exclusion for your cluster when you create
    it, or you can update an existing cluster to create a maintenance
    exclusion.
    
    To create a maintenance window or a maintenance exclusion, you can
    use the Google Cloud console, the gcloud CLI, or the Kubernetes
    API.
    
  2. Decidi di creare un periodo di manutenzione giornaliera durante l'orario di riposo della tua applicazione web utilizzando gcloud. Digita il seguente prompt:

    How can I create a daily maintenance window from 22:00 to 02:00 using
    `gcloud` for my GKE Autopilot cluster named gemini-demo?
    

    Gemini restituisce una risposta simile alla seguente:

    To create a daily maintenance window using gcloud CLI for your
    gemini-demo GKE Autopilot cluster that goes from 22:00 to 02:00, you
    can use the following command:
    
    gcloud container clusters update gemini-demo \
      --maintenance-window-start 22:00 \
      --maintenance-window-end 02:00 \
      --maintenance-window-recurrence "FREQ=DAILY"
    
    This command will create a daily maintenance window that runs from
    22:00 to 02:00 UTC time zone.
    

    L'esecuzione di questo comando garantisce che l'infrastruttura di cui esegui il provisioning per il team venga sottoposta a manutenzione nei momenti di minore traffico per gli utenti. Ora è tutto pronto per consigliare GKE Autopilot al tuo team di applicazioni web.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, puoi eliminare il progetto Google Cloud che hai creato per questo tutorial. In alternativa, puoi eliminare le singole risorse.

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Passaggi successivi