Crea e modifica un cluster GKE con l'assistenza di 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. Vedrai come Gemini può aiutarti a eseguire il deployment di una semplice app nel cluster e a creare un periodo di manutenzione giornaliera per l'app. Questo tutorial è rivolto a ingegneri di qualsiasi livello di esperienza.

Obiettivi

  • Esplora i vari servizi Google che puoi utilizzare per eseguire il deployment di un'app su GKE ponendo domande a Gemini basate sul contesto.
  • Chiedi a Gemini di fornire comandi che puoi usare per eseguire il deployment di un'app di base in un cluster GKE.
  • Creare, esplorare e modificare il cluster GKE utilizzando Gemini per spiegare e generare i comandi della 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 consente di eseguire il deployment e la gestione di 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&#39AIA generativa a un'ampia gamma di utenti, tra cui sviluppatori e data scientist. Per offrire un'esperienza di assistenza integrata, Gemini è integrato 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 progetto Google Cloud.

Esplora Kubernetes in Google Cloud

Per l'esempio seguente, supponiamo che tu sia un amministratore dell'infrastruttura responsabile della configurazione dell'infrastruttura per un team che sviluppa un'applicazione web. In generale, l'organizzazione ha standardizzato utilizzando container e Kubernetes, quindi il team vuole capire come eseguire la propria applicazione web su Kubernetes in Google Cloud. Inoltre, punta a ridurre il più possibile l'overhead possibile per la gestione dell'infrastruttura.

Nella console Google Cloud, puoi chattare con Gemini per ricevere assistenza. Nel riquadro Gemini, inserisci i prompt, ovvero domande o affermazioni che descrivono l'aiuto che vuoi ricevere. Gemini restituisce le risposte. Gemini non usa i tuoi prompt o le sue risposte come dati per addestrare il suo modello. Per maggiori informazioni, consulta la pagina In che modo Gemini per Google Cloud utilizza i dati.

Per ulteriori informazioni sulla scrittura di prompt per generare risposte efficaci, 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 il seguente prompt 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 può avere il seguente aspetto:

    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 questo prompt:

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

    La risposta di Gemini può avere il seguente aspetto:

    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 per la domanda successiva, reimpostala: 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 gli sviluppatori, decidi di testare GKE in modalità Autopilot. In questa sezione chiederai a Gemini di aiutarti nella creazione e nell'esecuzione di un'app web di test in un cluster GKE in modalità Autopilot.

  1. Nel riquadro Gemini, inserisci il seguente prompt, quindi 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 di nuovo 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 alcuni minuti, il cluster GKE Autopilot sarà pronto per l'uso.

Esegui il deployment di un'applicazione web di esempio

Ora che hai creato un cluster GKE in modalità Autopilot, vuoi testare 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 il test di un'applicazione web containerizzata: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0.

  1. Nel riquadro Gemini, inserisci il seguente prompt, quindi 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. Una volta creato il server web, decidi di testare il provisioning di un bilanciatore del carico davanti al server web per esporlo su internet.

    Nel riquadro Gemini, inserisci il seguente prompt, quindi 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.

    Sebbene fornire maggiore contesto sia sempre utile, notare che Gemini è stato in grado di 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 correttamente le richieste. 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 a questo:

    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 procedere con l'utilizzo di GKE Autopilot da parte del team, devi configurare un orario per la manutenzione o gli upgrade del cluster.

Sai che i modelli di traffico degli utenti per l'applicazione web del tuo team sono diurni. Dato che Gemini ha comunicato che GKE Autopilot gestisce automaticamente la manutenzione del cluster, devi stabilire che questa manutenzione avverrà al di fuori delle ore di maggior traffico 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 gli orari di disattivazione 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 tuo team venga sottoposta a manutenzione nei momenti meno di punta per i tuoi utenti. Ora puoi iniziare consigliando GKE Autopilot al team delle 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