Crea e modifica un cluster GKE con l'assistenza di Duet AI

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

Obiettivi

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

Prodotti Google Cloud utilizzati

Questo tutorial utilizza i seguenti prodotti fatturabili Google Cloud. 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 gestire le applicazioni containerizzate su larga scala. Per informazioni sui prezzi, consulta i prezzi di GKE.

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

Prima di iniziare

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

Esplora Kubernetes in Google Cloud

Per l'esempio seguente, considera che sei un amministratore dell'infrastruttura responsabile della configurazione dell'infrastruttura per un team che sviluppa un'applicazione web. L'organizzazione nel suo complesso ha standardizzato l'uso di container e Kubernetes, quindi il team vuole capire come eseguire l'applicazione web su Kubernetes in Google Cloud. Il team vuole anche ridurre il più possibile i costi di gestione dell'infrastruttura.

Nella console Google Cloud, puoi chattare con Duet AI per ricevere assistenza. Utilizzando il riquadro Duet AI, inserisci i prompts, ovvero domande o istruzioni che descrivono l'aiuto che cerchi, e Duet AI restituisce le risposte. Duet AI non usa i tuoi prompt o le sue risposte come dati per addestrare il modello. Per maggiori informazioni, consulta In che modo Duet AI in Google Cloud utilizza i tuoi dati.

Per ulteriori informazioni sulla scrittura di prompt per generare buone risposte, consulta Scrivere prompt migliori per Duet AI.

Per chiedere a Duet AI 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 chat_spark Apri Duet AI.

  2. Nel riquadro Duet AI, 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 Duet AI 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 di follow-up. 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 Duet AI 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 alla tua richiesta, reimposta la cronologia chat: nel riquadro Duet AI, fai clic sull'icona Elimina, quindi seleziona Reimposta chat.

Crea un cluster GKE in modalità Autopilot

Tieni presente che non hai dimestichezza 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 Duet AI di aiutarti a creare ed eseguire un'app web di test in un cluster GKE in modalità Autopilot.

  1. Nel riquadro Duet AI, inserisci il seguente prompt, quindi fai clic su Invia:

    How do I create a GKE Autopilot cluster?
    

    Duet AI 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 alla richiesta 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 duet-ai-demo in the us-central region using the gcloud CLI?
    

    Duet AI restituisce una risposta simile alla seguente:

    gcloud container clusters create-auto duet-ai-demo --region us-central1
    

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

    Dopo qualche minuto, 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 l'esecuzione di un'applicazione web di esempio simile all'applicazione che il tuo team eseguirà su questa infrastruttura. Internamente, la seguente immagine container di Google è stata aggiunta ai preferiti per testare un'applicazione web containerizzata: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0.

  1. Nel riquadro Duet AI, 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?
    

    Duet AI 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. Ora che il server web è stato creato, decidi di testare il provisioning di un bilanciatore del carico davanti al server web per esporlo a internet.

    Nel riquadro Duet AI, 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?
    

    Duet AI 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 sia sempre utile fornire maggiore contesto, nota come Duet AI è riuscito a estrarre il nome di 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?
    

    Duet AI 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 qualche minuto, l'esecuzione del comando kubectl precedente genererà un risultato simile a:

    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 fare in modo che il team utilizzi GKE Autopilot, devi configurare una data e un'ora 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 Duet AI ha comunicato che GKE Autopilot gestisce la manutenzione del cluster per te, devi indicare che questa manutenzione si verifica 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?
    

    Duet AI 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 apertura 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 duet-ai-demo?
    

    Duet AI restituisce una risposta simile alla seguente:

    To create a daily maintenance window using gcloud CLI for your
    duet-ai-demo GKE Autopilot cluster that goes from 22:00 to 02:00, you
    can use the following command:
    
    gcloud container clusters update duet-ai-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 meno impegnativi per i tuoi utenti. Ora puoi iniziare a 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