Créer et modifier un cluster GKE avec Gemini pour obtenir de l'aide concernant Google Cloud

Ce tutoriel explique comment utiliser Gemini pour Google Cloud, un collaborateur de Google Cloud optimisé par l'IA, afin de créer, tester et modifier un cluster Google Kubernetes Engine (GKE) dans Autopilot. Vous verrez comment Gemini 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

  • Découvrez divers services Google que vous pouvez utiliser pour déployer une application sur GKE en posant des questions contextuelles à Gemini.
  • Demandez à Gemini de fournir des commandes que vous pouvez utiliser pour déployer une application de base sur un cluster GKE.
  • Créer, explorer et modifier le cluster GKE à l'aide de Gemini pour expliquer et générer les commandes shell.

Produits Google Cloud utilisés

Ce tutoriel utilise les produits Google Cloud facturables suivants. Utilisez le Simulateur de coût pour générer une estimation des coûts en fonction de votre utilisation prévue.

  • 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.

  • Gemini. Gemini est un collaborateur permanent 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 fournir une expérience d'assistance intégrée, Gemini est intégré à de nombreux produits Google Cloud.

Avant de commencer

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

Explorer Kubernetes dans Google Cloud

Dans 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. L'entreprise dans son ensemble a normalisé 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 aussi le moins de frais de gestion de l'infrastructure possible.

Dans la console Google Cloud, vous pouvez discuter avec Gemini pour obtenir de l'aide. Dans le volet Gemini, vous saisissez des invites, qui sont des questions ou des instructions décrivant l'aide dont vous avez besoin, et Gemini renvoie des réponses. Gemini 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 section Comment Gemini pour Google Cloud utilise vos données.

Pour en savoir plus sur la rédaction de requêtes permettant de générer de bonnes réponses, consultez la section Rédiger de meilleures requêtes pour Gemini.

Pour inviter Gemini à 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 spark Ouvrir Genmini.

  2. Dans le volet Gemini, saisissez l'invite suivante en fonction de vos besoins 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 Gemini 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 Gemini 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 de vos discussions n'est pas pertinent par rapport à la prochaine question, réinitialisez-le: dans le volet Gemini, 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 à Gemini de vous aider à créer et à exécuter une application Web de test dans un cluster GKE en mode Autopilot.

  1. Dans le volet Gemini, saisissez l'invite suivante, puis cliquez sur Send (Envoyer) :

    How do I create a GKE Autopilot cluster?
    

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

  2. Lorsque vous voyez une réponse incluant des valeurs d'espaces réservés tels que CLUSTER_NAME, REGION et PROJECT_ID, l'ajout de ces informations à la requête 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 gemini-demo in the us-central region using the gcloud CLI?
    

    Gemini devrait proposer une réponse semblable à celle-ci :

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

    Pour utiliser la commande fournie par Gemini, 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 que Google a 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 Gemini, saisissez l'invite suivante, puis cliquez sur Send (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?
    

    Gemini 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. Avec le serveur Web 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 Gemini, saisissez l'invite suivante, puis cliquez sur Send (Envoyer) :

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

    Gemini devrait proposer 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 Gemini a pu extraire le nom de déploiement hello-server de l'historique de conversation sans l'inclure dans l'invite.

  3. Vous souhaitez maintenant vérifier que le serveur Web est en cours d'exécution et qu'il diffuse correctement les requêtes. Pour afficher votre 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?
    

    Gemini devrait proposer 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 cas d'utilisation principal de votre équipe dans un cluster GKE en mode Autopilot. Toutefois, avant de laisser l'équipe utiliser GKE Autopilot, vous devez configurer un horaire 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 Gemini a indiqué que GKE Autopilot gère pour vous la maintenance du cluster, vous souhaitez 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?
    

    Gemini devrait proposer 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 d'inactivité 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 gemini-demo?
    

    Gemini devrait proposer une réponse semblable à celle-ci :

    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'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 chargée des applications Web.

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de 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