Ingeniería de plataformas con IA con GKE y Gemini CLI

1. Introducción

En este lab, se proporciona una introducción técnica al uso de Gemini CLI y el servidor de Protocolo de contexto del modelo (MCP) de GKE para la administración de la infraestructura. En la administración tradicional de GKE, los operadores traducen de forma manual los requisitos de la infraestructura en comandos de gcloud y las definiciones de aplicaciones en manifiestos YAML escritos. En este lab, se demuestra un enfoque diferente: usar una interfaz interactiva que une la intención del lenguaje natural con la ejecución técnica en Google Kubernetes Engine (GKE). Este cambio forma parte de una tendencia más amplia en la ingeniería de plataformas, en la que el enfoque pasa de compilar secuencias de comandos de automatización rígidas a administrar agentes inteligentes que pueden controlar los detalles matizados de las operaciones de infraestructura.

Conceptos básicos

  • Ingeniería de plataformas: Es la práctica de compilar y mantener herramientas y flujos de trabajo internos que permiten a los desarrolladores de software administrar su propia infraestructura sin necesidad de ser expertos en todos los servicios subyacentes de la nube. El objetivo es reducir la fricción técnica y, al mismo tiempo, mantener la coherencia y la seguridad. Cuando crean una ruta de acceso dorada estandarizada, los equipos de plataforma se aseguran de que los desarrolladores de aplicaciones puedan realizar implementaciones de forma segura y rápida, mientras que el equipo de plataforma mantiene el control sobre la administración y el costo.
  • Gemini CLI: Es una interfaz de línea de comandos que te permite interactuar con los modelos de Gemini directamente desde tu terminal. A diferencia de un chatbot estándar basado en la Web, la CLI está diseñada para existir dentro de tu entorno de desarrollo, lo que facilita la integración de la IA en los flujos de trabajo existentes basados en shell. Te permite canalizar el resultado de otros comandos directamente al modelo y ejecutar instrucciones sin salir de tu entorno de terminal.
  • Protocolo de contexto del modelo (MCP): El MCP es un estándar abierto que permite que un modelo de IA se conecte con herramientas o fuentes de datos específicas. Sin el MCP, un modelo de IA solo sabe sobre lo que se entrenó y no puede ver tus recursos específicos. Con el servidor MCP de GKE, Gemini CLI puede consultar de forma activa la API de tu proyecto de Google Cloud, inspeccionar el estado de tus clústeres y ejecutar comandos en tu nombre. Actúa como un puente entre el motor de razonamiento del modelo y la API de GKE real.

Objetivos del lab

Al final de esta sesión, podrás hacer lo siguiente:

  1. Configurar el entorno: Acceder a Cloud Shell y autenticar la extensión MCP de GKE para permitir que Gemini CLI interactúe con tus recursos de Google Cloud
  2. Diseñar la infraestructura: Usar instrucciones interactivas para determinar las configuraciones óptimas del clúster en función del costo, la sobrecarga de administración y los requisitos de la carga de trabajo
  3. Administrar recursos: Generar, auditar e implementar manifiestos de Kubernetes (implementaciones, servicios, etcétera) con lenguaje natural
  4. Realizar análisis operativos: Usar la capacidad de la IA para agregar registros y eventos para identificar la causa raíz de las fallas de implementación y sugerir correcciones técnicas específicas

2. Configuración del proyecto

Se requiere un entorno de Google Cloud configurado correctamente para que Gemini CLI pueda interactuar con tus recursos. Esta configuración garantiza que tu proyecto tenga los permisos correctos y que todos los servicios de backend necesarios estén listos para recibir solicitudes de tu agente de IA.

Abre Cloud Shell

En este lab, usaremos Cloud Shell, un entorno de terminal basado en el navegador que proporciona Google Cloud. Usamos Cloud Shell porque viene preconfigurado con todas las herramientas que necesitamos, incluidas la CLI de Google Cloud (gcloud), kubectl y Gemini CLI, lo que te ahorra el tiempo de instalarlas en tu máquina local.

  1. Ve a la Google Cloud Console.
  2. Mira el encabezado superior derecho de la consola y haz clic en el botón Activar Cloud Shell (se ve como un símbolo del sistema de terminal >_).
  3. Se abrirá una sesión de terminal en la parte inferior de la ventana del navegador. Si se te solicita, haz clic en Continuar.

Selecciona un proyecto

En la terminal de Cloud Shell, asegúrate de estar trabajando en el proyecto correcto.

  1. Selecciona un proyecto existente o crea uno nuevo específicamente para este lab en la consola.
  2. Anota tu ID del proyecto. Para configurar el proyecto en tu shell actual, ejecuta el siguiente comando: gcloud config set project [YOUR_PROJECT_ID]

Habilita las APIs

Las funciones de Kubernetes y de IA no están habilitadas de forma predeterminada para los proyectos nuevos. Si habilitas estas APIs, se inicializan los servicios subyacentes de Google Cloud que controlan la administración de contenedores, los modelos generativos y el registro centralizado.

👉💻 Ejecuta el siguiente comando en Cloud Shell para habilitarlos. Este proceso puede tardar un minuto.

gcloud services enable \
    container.googleapis.com \
    generativelanguage.googleapis.com \
    cloudresourcemanager.googleapis.com \
    logging.googleapis.com
  • container.googleapis.com: La API de Google Kubernetes Engine. Es necesaria para cualquier operación a nivel del clúster, incluida la creación, la actualización y la eliminación de clústeres.
  • generativelanguage.googleapis.com: La API que permite que Gemini CLI se comunique con los modelos de lenguaje grande de Gemini para la generación y el razonamiento de texto.
  • cloudresourcemanager.googleapis.com: Es necesaria para que el agente inspeccione los metadatos a nivel del proyecto, verifique los IDs del proyecto y administre los permisos de IAM.
  • logging.googleapis.com: Es esencial para la solución de problemas, ya que permite que el servidor MCP recupere y analice los registros de tus contenedores cuando algo sale mal.

3. Configura Gemini CLI

Cloud Shell incluye Gemini CLI de forma predeterminada, lo que lo convierte en el entorno ideal para este flujo de trabajo. El primer paso es configurarlo para que actúe como un "agente" que tenga la autoridad y las herramientas específicas necesarias para administrar tu entorno de GKE. Este paso de configuración es fundamental porque establece la conexión segura entre la lógica de la IA y tu infraestructura de nube real.

Inicia Gemini CLI

En tu terminal de Cloud Shell, crea un directorio de trabajo nuevo y ejecuta Gemini CLI. Esto inicia una sesión en la que puedes tener una conversación continua con el modelo. A diferencia de los comandos únicos, el modo interactivo mantiene una ventana de contexto que recuerda tus instrucciones anteriores y el estado de tu proyecto.

👉💻 Ejecuta los siguientes comandos:

mkdir -p ~/gke-lab
cd ~/gke-lab
gemini

Una vez dentro, prueba el conocimiento básico de la herramienta para asegurarte de que pueda ver tu entorno:

  • 👉💬 Prompt: Which Google Cloud project is currently active in this shell?

Es posible que te pida que confirmes la ejecución del comando gcloud, que puedes aceptar.

Puedes salir de la interfaz en cualquier momento si escribes /quit.

Nota: Si tienes problemas de capacidad con Gemini 2.5 Pro, puedes cambiar a Gemini 2.5 Flash abriendo Gemini con

gemini -m gemini-2.5-flash

o usando el comando

/model

dentro de la interfaz.

Conecta la extensión MCP de GKE

De forma predeterminada, Gemini CLI es una herramienta de uso general y no tiene conocimientos específicos sobre cómo interactuar con tus clústeres. Debes instalar la extensión MCP de GKE. Esta extensión actúa como un complemento que define un conjunto específico de herramientas y funciones, como "listar clústeres" o "obtener registros de pods", que el modelo puede llamar cuando necesita realizar una tarea.

👉💻 Ejecuta los siguientes comandos para instalar la extensión de GKE y volver a abrir Gemini CLI:

gemini extensions install https://github.com/GoogleCloudPlatform/gke-mcp.git
gemini

Para verificar que se haya habilitado correctamente, vuelve a ingresar a Gemini CLI y escribe lo siguiente:

/extensions

4. Aprovisiona la infraestructura

El aprovisionamiento de infraestructura tradicional suele implicar navegar por documentación compleja o escribir cientos de líneas de código de configuración. Cuando usas un agente, puedes enfocarte en describir tus requisitos y dejar que la IA controle la traducción técnica a las llamadas a la API correctas. En esta sección, se muestra cómo usar el agente para la fase de planificación y la creación real de tu entorno de GKE.

Planificación y comparación técnicas

Antes de crear un clúster, debes elegir una arquitectura que se adapte a tus necesidades. GKE ofrece dos modos principales: Standard, en el que tienes control total sobre los nodos subyacentes, y Autopilot, en el que Google administra los nodos y pagas según los recursos que solicitan tus pods. Probemos una consulta simple para comprender las diferencias entre ambos y generar ideas sobre cuál usar para un caso de uso específico.

  • 👉💬 Prompt: I need to run a standard 3-tier web application. Compare GKE Standard and GKE Autopilot. Focus on the operational effort for a small team and the cost structure for small workloads.

Intenta preguntar sobre otras ideas de infraestructura. ¿Qué sucede si implementas cargas de trabajo de inferencia de IA, necesitas algo a una escala muy alta o tienes restricciones de red complejas? Experimenta con otras instrucciones.

Ejecuta la creación del clúster

Una vez que hayas revisado la comparación y hayas tomado una decisión, puedes indicarle al agente que compile el clúster. El agente analizará tu solicitud y llamará a la herramienta create_cluster del servidor MCP de GKE para implementar un entorno listo para la producción en función de esos requisitos.

  • 👉💬 Prompt: Create a GKE Standard zonal cluster named 'gke-lab' in us-central1-a with 1 node with 4 CPUs. The cluster should have Workload Identity enabled.

Nota: El aprovisionamiento del clúster de GKE implica configurar el plano de control, las redes privadas virtuales y las configuraciones iniciales de los nodos, lo que suele tardar entre 8 y 10 minutos. No cierres tu sesión de Gemini CLI.

Puedes preguntar sobre el estado del clúster, que volverá a aprovechar el servidor MCP de GKE para mostrar información actualizada.

  • 👉💬 Prompt: Is the new GKE cluster created and ready to use, yet?

5. Implementación y validación

Un beneficio importante de usar un agente de IA para la ingeniería de plataformas es su capacidad de realizar verificaciones y auditorías "previas al vuelo" en tus configuraciones. En lugar de implementar un manifiesto y esperar a que falle, puedes usar el agente para verificar que tu YAML sea técnicamente sólido y cumpla con las políticas de seguridad de tu organización antes de que llegue al clúster.

Genera manifiestos

Pídele al agente que cree un manifiesto de implementación. Como el agente comprende el esquema y el control de versiones de la API de Kubernetes, generará un YAML con el formato correcto y que incluirá todos los campos necesarios para una implementación exitosa.

  • 👉💬 Prompt: Generate a Kubernetes YAML manifest for an Nginx web server. I need 3 replicas. Set a memory limit of 256Mi and a CPU limit of 500m. Also, include a Service of type LoadBalancer to make it accessible via the internet. Save the manifest as web-server.yaml

Validación técnica y auditoría de seguridad

La creación manual de YAML suele generar configuraciones que se ejecutan con más privilegios de los necesarios o que carecen de funciones básicas de confiabilidad. Puedes usar el agente para auditar el manifiesto que acaba de crear y asegurarte de que cumpla con los estándares modernos de seguridad y resiliencia.

  • 👉💬 Prompt: Review the Nginx manifest you just created. Does it include resource requests (not just limits)? Does it specify a non-root user for the container? Add a Pod Disruption Budget to ensure high availability during cluster maintenance. Make any necessary modifications to the file, and tell me what changes were made.

Ejecución de la implementación

Una vez que se complete el aprovisionamiento del clúster de la sección anterior, dile a Gemini CLI que aplique la configuración a tu clúster nuevo. El agente usará sus herramientas para comunicarse con el servidor de la API de Kubernetes y crear los recursos solicitados.

  • 👉💬 Prompt: Deploy the audited Nginx manifest to the 'gke-lab' cluster. Use the kubectl command to do this.

Verificación de estado en tiempo real

En lugar de ejecutar varios comandos kubectl get pods o kubectl describe, puedes pedirle al agente un resumen en lenguaje natural del progreso de la implementación.

  • 👉💬 Prompt: Are the Nginx pods running? Provide the external IP address assigned to the LoadBalancer once it is available.

¿Te encuentras atascado?

Si los servicios de Nginx no parecen implementarse correctamente, intenta solucionar el problema con Gemini CLI. Está ahí para ayudarte.

  • 👉💬 Prompt: The Nginx deployment doesn't start up as expected. Can you help troubleshoot?

6. Mantenimiento y solución de problemas

Uno de los aspectos más valiosos de una plataforma basada en IA es su capacidad para las operaciones del "día 2". Cuando falla un sistema, el desafío suele ser buscar entre miles de líneas de registro para encontrar el error que importa. Cuando usas Gemini CLI con MCP, puedes permitir que el agente agregue registros, eventos y mensajes de estado para proporcionarte un diagnóstico de alto nivel y una ruta específica para la resolución.

Inserción manual de fallas

Para probar la capacidad de diagnóstico del agente, crearemos de forma intencional un estado de falla. En una pestaña de terminal separada, ejecuta este comando para actualizar tu implementación con una imagen de contenedor que no existe. Esto simula un error humano común: un error tipográfico en una etiqueta de contenedor.

👉💻 Ejecuta el siguiente comando fuera de Gemini CLI:

kubectl set image deployment/nginx nginx=nginx:invalid-version-xyz123

Nota: Es posible que tu implementación no se llame exactamente "nginx". Para verificarlo, ejecuta

kubectl get deployments

Kubernetes intentará extraer esta imagen, fallará porque no puede encontrar la etiqueta y los pods ingresarán en un estado ImagePullBackOff.

Análisis con Gemini CLI

Vuelve a tu sesión de Gemini CLI. En lugar de buscar en la consola de Cloud Logging de forma manual, pídele al agente que encuentre y explique el error.

  • 👉💬 Prompt: The Nginx deployment on my 'gke-lab' cluster has stopped working. Use your tools to inspect the cluster state, check the recent events, and explain exactly why the pods are failing to start.

Qué sucede aquí: Gemini CLI observará que la implementación no es correcta. Luego, usará las herramientas disponibles para inspeccionar los pods con errores. El agente identificará el error de extracción, explicará que la etiqueta no es válida y te sugerirá que vuelvas a una imagen correcta conocida.

Mantenimiento y evaluación de riesgos

El mantenimiento de la plataforma implica mantenerse al tanto de las actualizaciones y las bajas. Puedes pedirle al agente que actúe como un SRE y evalúe el estado y la longevidad de tu clúster.

  • 👉💬 Prompt: Is my cluster 'gke-lab' running the latest version of GKE? Check for available upgrades and let me know if any of my current resources use deprecated APIs that would break during an upgrade.

Esto puede hacer que Gemini llame a herramientas del servidor MCP de GKE, como las herramientas de estado y recomendación del clúster.

7. Conclusión

En este lab, se demostró una nueva forma de interactuar con la infraestructura de la nube. Cuando integras un agente de IA directamente en tu flujo de trabajo de terminal a través de Gemini CLI y MCP, pasas de ser un escritor manual de comandos a un director de intención. Este enfoque permite que los equipos de plataforma escalen su experiencia proporcionando una interfaz inteligente que controla los detalles repetitivos y propensos a errores de la administración de Kubernetes, mientras que el ingeniero humano se enfoca en la arquitectura de alto nivel y la solución de problemas.

Resumen del lab

  • Conectividad: Conectaste correctamente Gemini CLI a la API de GKE con el Protocolo de contexto del modelo, lo que le dio al modelo de IA visibilidad directa del estado de tu proyecto.
  • Infraestructura: Usaste lenguaje natural para diseñar y aprovisionar un clúster de GKE, lo que evitó la necesidad de memorizar marcas complejas de la CLI.
  • Desarrollo: Generaste, auditaste para la seguridad y, luego, implementaste recursos de Kubernetes sin edición manual de YAML, lo que garantizó que se siguieran las prácticas recomendadas desde el principio.
  • Operaciones: Usaste la IA para realizar un análisis de la causa raíz en una implementación interrumpida, lo que redujo significativamente el tiempo medio de recuperación, ya que permitió que la IA resumiera registros y eventos.

Limpieza

Para evitar cargos continuos de Google Cloud por los recursos creados en este lab, puedes indicarle al agente que borre el clúster.

Nota: Omite este paso si planeas reutilizar el clúster de GKE para otro lab.

  • 👉💬 Prompt: Delete the 'gke-lab' cluster and any associated resources.

Próximos pasos

Recomendaciones para ampliar tus conocimientos: