Crea y modifica un clúster de GKE con Gemini para obtener asistencia de Google Cloud

En este instructivo, se muestra cómo usar Gemini para Google Cloud, un colaborador potenciado por IA en Google Cloud, para crear, probar y modificar un clúster de Google Kubernetes Engine (GKE) en Autopilot. Verás cómo Gemini puede ayudar a implementar una app simple en el clúster y crear un período de mantenimiento diario para la app. Este instructivo está dirigido a ingenieros de cualquier nivel de experiencia.

Objetivos

  • Haz preguntas de Gemini basadas en el contexto a fin de explorar varios servicios de Google que puedes usar para implementar una app en GKE.
  • Solicita a Gemini que proporcione los comandos que puedes usar para implementar una app básica en un clúster de GKE.
  • Crear, explorar y modificar el clúster de GKE con Gemini para explicar y generar los comandos de shell

Productos de Google Cloud usados

En este instructivo, se usan los siguientes productos facturables de Google Cloud. Usa la calculadora de precios para generar una estimación de los costos según el uso previsto.

  • GKE. GKE es un servicio administrado de Kubernetes que te permite implementar y administrar aplicaciones alojadas en contenedores a gran escala. Para obtener información sobre los precios, consulta Precios de GKE.

  • Gemini. Gemini es un colaborador siempre activo en Google Cloud que ofrece asistencia con tecnología de IA generativa a una amplia variedad de usuarios, incluidos desarrolladores y científicos de datos. Para ofrecer una experiencia de asistencia integrada, Gemini está incorporada en muchos productos de Google Cloud.

Antes de comenzar

  1. Habilita la API de GKE.
  2. Asegúrate de que Gemini esté configurado para tu proyecto y cuenta de usuario de Google Cloud.

Explora Kubernetes en Google Cloud

En el siguiente ejemplo, considera que eres un administrador de infraestructura responsable de configurar la infraestructura para un equipo que desarrolla una aplicación web. Toda la organización en general ha estandarizado el uso de contenedores y Kubernetes, por lo que el equipo quiere comprender cómo ejecutar su aplicación web en Kubernetes en Google Cloud. El equipo también quiere la menor sobrecarga de administración de infraestructura posible.

En la consola de Google Cloud, puedes chatear con Gemini para obtener ayuda. En el panel Gemini, puedes ingresar mensajes, que son preguntas o sentencias que describen la ayuda que necesitas, y Gemini muestra respuestas. Gemini no usa tus mensajes ni sus respuestas como datos para entrenar su modelo. Para obtener más información, consulta Cómo usa tus datos Gemini para Google Cloud.

Si quieres obtener más información sobre cómo escribir instrucciones para generar buenas respuestas, consulta Cómo escribir mejores instrucciones para Gemini.

Para pedirle a Gemini que te ayude a decidir cómo ejecutar Kubernetes en Google Cloud, sigue estos pasos:

  1. En la barra de herramientas de la consola de Google Cloud, haz clic en spark Abrir Gemini.

  2. En el panel de Gemini, ingresa la siguiente instrucción según tus requisitos y preferencias y, luego, haz clic en Enviar:

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

    La respuesta de Gemini puede verse de la siguiente manera:

    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. Ingresa una pregunta adicional. Por ejemplo, si deseas estandarizar la creación de clústeres de GKE en modo Autopilot con Terraform, ingresa el siguiente mensaje:

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

    La respuesta de Gemini puede verse de la siguiente manera:

    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. Opcional: Si tu historial de chat no es relevante para lo que solicitarás a continuación, restablece el historial de chat. Para ello, en el panel de Gemini, haz clic en el ícono de borrar y, luego, selecciona Restablecer chat.

Crea un clúster de GKE en modo Autopilot

Considera que no estás familiarizado con la ejecución de Kubernetes con GKE en modo Autopilot. Antes de aprovisionar un clúster para tus desarrolladores, primero decides probar GKE en modo Autopilot. En esta sección, le pedirás a Gemini que te ayude a crear y ejecutar una app web de prueba en un clúster de GKE en modo Autopilot.

  1. En el panel de Gemini, ingresa la siguiente instrucción y, luego, haz clic en Enviar:

    How do I create a GKE Autopilot cluster?
    

    Gemini responde con las instrucciones para crear un clúster con la consola de Google Cloud y Google Cloud CLI.

  2. Cuando veas una respuesta que incluye valores de marcador de posición, como CLUSTER_NAME, REGION y PROJECT_ID, agregar esa información al mensaje podría generar respuestas aún más útiles. Vuelve a definir mejor la instrucción con más detalles:

    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 devuelve una respuesta similar a la que se indica a continuación:

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

    Para usar el comando que proporciona Gemini, abre Cloud Shell y ejecuta el comando gcloud anterior en la respuesta.

    Después de unos minutos, tu clúster de GKE Autopilot estará listo para usarse.

Implementa una aplicación web de muestra

Ahora que creaste un clúster de GKE en modo Autopilot, te gustaría probar la ejecución de una aplicación web de muestra similar a la aplicación que ejecutará tu equipo en esta infraestructura. De forma interna, verás la siguiente imagen de contenedor de Google agregada a favoritos para probar una aplicación web alojada en contenedores: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0.

  1. En el panel de Gemini, ingresa la siguiente instrucción y, luego, haz clic en Enviar:

    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 muestra una respuesta similar a la siguiente:

    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
    

    Ejecuta el comando kubectl anterior en Cloud Shell.

  2. Una vez creado el servidor web, decides probar el aprovisionamiento de un balanceador de cargas frente al servidor web para exponerlo a Internet.

    En el panel de Gemini, ingresa la siguiente instrucción y, luego, haz clic en Enviar:

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

    Gemini devuelve una respuesta similar a la que se indica a continuación:

    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
    

    Si ejecutas este comando, se creará un balanceador de cargas de Compute Engine para tu contenedor.

    Si bien proporcionar más contexto siempre es útil, observa cómo Gemini pudo extraer el nombre de implementación hello-server del historial de conversaciones sin que se incluyera en el mensaje.

  3. Ahora deseas ver si el servidor web está en ejecución y entrega solicitudes correctamente. Para ver la aplicación implementada, debes recuperar la dirección IP externa del servicio de Kubernetes que creaste.

    Escribe la siguiente instrucción:

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

    Gemini devuelve una respuesta similar a la que se indica a continuación:

    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.
    

    Después de unos minutos, ejecutar el comando kubectl anterior generará un resultado similar al siguiente:

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

    Ahora puedes acceder a la aplicación web que se ejecuta en GKE con el valor que se muestra para EXTERNAL-IP.

Planifica una estrategia de actualización del clúster

Ya probaste el caso de uso principal de tu equipo en un clúster de GKE en modo Autopilot. Sin embargo, antes de hacer que el equipo use GKE Autopilot, debes configurar una hora para el mantenimiento o las actualizaciones del clúster.

Sabes que los patrones de tráfico de los usuarios para la aplicación web de tu equipo son diurnos. Dado que Gemini comunicó que GKE Autopilot se encarga del mantenimiento del clúster por ti, debes indicar que este mantenimiento ocurre fuera de las horas de mayor actividad de tu aplicación web.

  1. Escribe la siguiente instrucción:

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

    Gemini devuelve una respuesta similar a la que se indica a continuación:

    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. Decides crear un período de mantenimiento diario durante las horas fuera de servicio de tu aplicación web con gcloud. Escribe la siguiente instrucción:

    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 devuelve una respuesta similar a la que se indica a continuación:

    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.
    

    Ejecutar este comando garantiza que la infraestructura que aprovisiones para tu equipo se someta a mantenimiento durante las horas menos ocupadas para tus usuarios. Ya está todo listo para recomendar GKE Autopilot a tu equipo de aplicaciones web.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, puedes borrar el proyecto de Google Cloud que creaste para este instructivo. Como alternativa, puedes borrar los recursos individuales.

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

¿Qué sigue?