Créer et modifier un cluster GKE avec l'aide de Duet AI

Ce tutoriel explique comment utiliser Duet AI, un collaborateur de Google Cloud basé sur l'IA, pour créer, tester et modifier un cluster Google Kubernetes Engine (GKE) dans Autopilot. Vous verrez comment Duet AI peut vous aider à déployer une application simple sur le cluster et à créer un intervalle de maintenance quotidien pour l'application. Ce tutoriel est destiné aux ingénieurs, quel que soit leur niveau d'expérience.

Objectifs

  • Explorez divers services Google que vous pouvez utiliser pour déployer une application sur GKE en posant des questions contextuelles à Duet AI.
  • Invitez Duet AI à fournir des commandes permettant de déployer une application de base sur un cluster GKE.
  • Créer, explorer et modifier le cluster GKE en utilisant Duet AI pour expliquer et générer les commandes shell.

Produits Google Cloud utilisés

Ce tutoriel utilise les produits Google Cloud facturables suivants. Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.

  • GKE : GKE est un service Kubernetes géré qui vous permet de déployer et de gérer des applications conteneurisées à grande échelle. Pour en savoir plus sur la tarification, consultez la page Tarifs de GKE.

  • Duet AI Duet AI est un collaborateur toujours actif de Google Cloud qui propose une assistance basée sur l'IA générative à un large éventail d'utilisateurs, y compris des développeurs et des data scientists. Pour offrir une expérience d'assistance intégrée, Duet AI est intégré à de nombreux produits Google Cloud.

Avant de commencer

  1. Activez l'API GKE.
  2. Assurez-vous que Duet AI est configuré pour votre compte utilisateur et votre projet Google Cloud.

Explorer Kubernetes dans Google Cloud

Pour l'exemple suivant, supposons que vous êtes un administrateur d'infrastructure chargé de configurer l'infrastructure pour une équipe qui développe une application Web. Dans son ensemble, l'organisation a standardisé l'utilisation de conteneurs et de Kubernetes. L'équipe souhaite donc comprendre comment exécuter son application Web sur Kubernetes dans Google Cloud. L'équipe souhaite également réduire au maximum les frais de gestion de l'infrastructure.

Dans la console Google Cloud, vous pouvez discuter avec Duet AI pour obtenir de l'aide. Dans le volet Duet AI, vous saisissez des invites, qui sont des questions ou des instructions décrivant l'aide dont vous avez besoin. Duet AI renvoie ensuite des réponses. Duet AI n'utilise pas vos requêtes ni ses réponses comme données pour entraîner son modèle. Pour en savoir plus, consultez la page Comment Duet AI dans Google Cloud utilise vos données.

Pour savoir comment rédiger des requêtes permettant de générer de bonnes réponses, consultez Rédiger des requêtes plus pertinentes pour Duet AI.

Pour demander à Duet AI de vous aider à décider comment exécuter Kubernetes dans Google Cloud, procédez comme suit:

  1. Dans la barre d'outils de la console Google Cloud, cliquez sur chat_spark Ouvrir Duet AI.

  2. Dans le volet Duet AI, saisissez l'invite suivante en fonction de vos exigences et de vos préférences, puis cliquez sur Send (Envoyer) :

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

    La réponse de Duet AI peut se présenter comme suit:

    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. Saisissez une question complémentaire. Par exemple, si vous souhaitez standardiser la création de clusters GKE en mode Autopilot à l'aide de Terraform, saisissez l'invite suivante:

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

    La réponse de Duet AI peut se présenter comme suit:

    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. Facultatif: Si l'historique des discussions ne correspond pas à ce que vous allez demander, réinitialisez-le: dans le volet Duet AI, cliquez sur l'icône Supprimer, puis sélectionnez Réinitialiser la discussion.

Créer un cluster GKE en mode Autopilot

Notez que vous n'êtes pas familier avec l'exécution de Kubernetes avec GKE en mode Autopilot. Avant de provisionner un cluster pour vos développeurs, vous décidez de tester GKE en mode Autopilot. Dans cette section, vous allez demander à Duet AI de vous aider à créer et à exécuter une application Web de test dans un cluster GKE en mode Autopilot.

  1. Dans le volet Duet AI, saisissez l'invite suivante, puis cliquez sur Envoyer:

    How do I create a GKE Autopilot cluster?
    

    Duet AI répond avec les instructions de création d'un cluster à l'aide de la console Google Cloud et de la Google Cloud CLI.

  2. Lorsque vous voyez une réponse incluant des valeurs d'espace réservé tels que CLUSTER_NAME, REGION et PROJECT_ID, l'ajout de ces informations à l'invite peut conduire à des réponses encore plus utiles. Affinez à nouveau la requête avec plus de détails:

    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 renvoie une réponse semblable à celle-ci:

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

    Pour utiliser la commande fournie par Duet AI, ouvrez Cloud Shell et exécutez la commande gcloud précédente dans la réponse.

    Après quelques minutes, votre cluster GKE Autopilot est prêt à l'emploi.

Déployer un exemple d'application Web

Maintenant que vous avez créé un cluster GKE en mode Autopilot, vous souhaitez tester l'exécution d'un exemple d'application Web semblable à celle que votre équipe va exécuter sur cette infrastructure. En interne, vous voyez l'image de conteneur suivante, tirée de Google, et ajoutée aux favoris pour tester une application Web conteneurisée : us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0.

  1. Dans le volet Duet AI, saisissez l'invite suivante, puis cliquez sur Envoyer:

    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 renvoie une réponse semblable à celle-ci:

    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
    

    Exécutez la commande kubectl précédente dans Cloud Shell.

  2. Maintenant que le serveur Web est créé, vous décidez de tester le provisionnement d'un équilibreur de charge devant le serveur Web pour l'exposer sur Internet.

    Dans le volet Duet AI, saisissez l'invite suivante, puis cliquez sur Envoyer:

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

    Duet AI renvoie une réponse semblable à celle-ci:

    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'exécution de cette commande crée un équilibreur de charge Compute Engine pour votre conteneur.

    Bien qu'il soit toujours utile de fournir plus de contexte, notez que Duet AI a pu extraire le nom de déploiement hello-server de l'historique de la conversation sans l'inclure dans l'invite.

  3. Vous souhaitez maintenant voir si le serveur Web s'exécute et diffuse correctement les requêtes. Pour afficher l'application déployée, vous devez récupérer l'adresse IP externe du service Kubernetes que vous avez créé.

    Saisissez la requête suivante :

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

    Duet AI renvoie une réponse semblable à celle-ci:

    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.
    

    Après quelques minutes, l'exécution de la commande kubectl précédente génère un résultat semblable à celui-ci:

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

    Vous pouvez maintenant accéder à votre application Web exécutée sur GKE à l'aide de la valeur renvoyée pour EXTERNAL-IP.

Planifier une stratégie de mise à niveau du cluster

Vous avez maintenant testé le principal cas d'utilisation de votre équipe dans un cluster GKE en mode Autopilot. Toutefois, avant de laisser l'équipe utiliser GKE Autopilot, vous devez configurer une heure pour la maintenance ou les mises à niveau du cluster.

Vous savez que les modèles de trafic des utilisateurs de l'application Web de votre équipe sont irréguliers. Étant donné que Duet AI a indiqué que GKE Autopilot gère la maintenance du cluster à votre place, vous devez indiquer qu'elle a lieu en dehors des heures de pointe de votre application Web.

  1. Saisissez la requête suivante :

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

    Duet AI renvoie une réponse semblable à celle-ci:

    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. Vous décidez de créer un intervalle de maintenance quotidien pendant les heures de fermeture de votre application Web à l'aide de gcloud. Saisissez la requête suivante :

    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 renvoie une réponse semblable à celle-ci:

    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'exécution de cette commande garantit que l'infrastructure que vous provisionnez pour votre équipe sera soumise à des opérations de maintenance aux périodes les moins chargées pour vos utilisateurs. Vous êtes prêt à recommander GKE Autopilot à votre équipe en charge des applications Web.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud, vous pouvez supprimer le projet Google Cloud que vous avez créé pour ce tutoriel. Vous pouvez également supprimer les différentes ressources.

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étapes suivantes