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 manualmente los requisitos de infraestructura en comandos gcloud y las definiciones de aplicaciones en manifiestos YAML escritos. En este lab, se muestra 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 crear 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 crear 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 cada servicio de nube subyacente. El objetivo es reducir la fricción técnica y, al mismo tiempo, mantener la coherencia y la seguridad. Al crear una ruta de oro estandarizada, los equipos de la plataforma garantizan que los desarrolladores de aplicaciones puedan realizar implementaciones de forma segura y rápida, mientras que el equipo de la 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 web estándar, 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 la salida de otros comandos directamente al modelo y ejecutar instrucciones sin salir del entorno de la 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 con qué se entrenó y no puede ver tus recursos específicos. Con el servidor de 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. Configura el entorno: Accede a Cloud Shell y autentica la extensión de MCP de GKE para permitir que la CLI de Gemini interactúe con tus recursos de Google Cloud.
  2. Diseño de infraestructura: Usa 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. Administración de recursos: Genera, audita y, luego, implementa manifiestos de Kubernetes (implementaciones, servicios, etcétera) con lenguaje natural.
  4. Análisis operativo: Usa la capacidad de la IA para agregar registros y eventos, identificar la causa raíz de las fallas en la 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 navegador que proporciona Google Cloud. Usamos Cloud Shell porque viene preconfigurado con todas las herramientas que necesitamos, incluidas Google Cloud CLI (gcloud), kubectl y Gemini CLI, lo que te ahorra el tiempo de instalarlas en tu máquina local.

  1. Ve a Google Cloud Console.
  2. Mira el encabezado de la parte superior derecha de la consola y haz clic en el botón Activar Cloud Shell (parece un símbolo del sistema de la 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 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. Habilitar estas APIs inicializa 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: Es la API de Google Kubernetes Engine. Se requiere para cualquier operación a nivel del clúster, incluida la creación, actualización y eliminación de clústeres.
  • generativelanguage.googleapis.com: Es la API que permite que Gemini CLI se comunique con los modelos de lenguaje grandes de Gemini para la generación de texto y el razonamiento.
  • cloudresourcemanager.googleapis.com: Se requiere para que el agente inspeccione los metadatos a nivel del proyecto, verifique los IDs de los proyectos y administre los permisos de IAM.
  • logging.googleapis.com: Es esencial para solucionar problemas, ya que permite que el servidor de MCP recupere y analice los registros de tus contenedores cuando algo sale mal.

3. Cómo configurar 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 la terminal de Cloud Shell, crea un nuevo directorio de trabajo 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 la capacidad básica de la herramienta para asegurarse de que pueda ver tu entorno:

  • 👉💬 Instrucción: Which Google Cloud project is currently active in this shell?

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

Puedes salir de la interfaz en cualquier momento escribiendo /quit.

Nota: Si tienes problemas de capacidad con Gemini 2.5 Pro, puedes cambiar a Gemini 2.5 Flash. Para ello, abre Gemini con

gemini -m gemini-2.5-flash

o con la

/model

comando dentro de la interfaz.

Conecta la extensión de 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 del 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. Aprovisionamiento de infraestructura

El aprovisionamiento de infraestructura tradicional a menudo implica navegar por documentación compleja o escribir cientos de líneas de código de configuración. Con un agente, puedes concentrarte en describir tus requisitos y dejar que la IA se encargue de la traducción técnica a las llamadas a la API correctas. En esta sección, se muestra cómo usar el agente tanto para la fase de planificación como para 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 con una búsqueda simple para comprender las diferencias entre ambas y analizar cuál usar para un caso de uso específico.

  • 👉💬 Instrucción: 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 gran escala o tienes restricciones de redes complejas? Experimenta con otras instrucciones.

Ejecuta la creación del clúster

Una vez que revises la comparación y tomes una decisión, puedes indicarle al agente que cree el clúster. El agente analizará tu solicitud y llamará a la herramienta create_cluster desde el servidor de MCP de GKE para implementar un entorno listo para la producción según esos requisitos.

  • 👉💬 Instrucción: 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 la sesión de Gemini CLI.

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

  • 👉💬 Instrucción: 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 correcto y cumpla con las políticas de seguridad de tu organización antes de que llegue al clúster.

Generar manifiestos

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

  • 👉💬 Instrucción: 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 archivos 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.

  • 👉💬 Instrucción: 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, indícale 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.

  • 👉💬 Instrucción: 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.

  • 👉💬 Instrucción: 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 se implementan correctamente, intenta solucionar el problema con Gemini CLI. Está ahí para ayudarte.

  • 👉💬 Instrucción: 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 impulsada por 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. Si usas Gemini CLI con MCP, puedes permitir que el agente agregue registros, eventos y mensajes de estado para proporcionarte un diagnóstico general y una ruta específica para la resolución.

Inserción manual de fallas

Para probar la capacidad de diagnóstico del agente, crearemos intencionalmente un estado de falla. En una pestaña de terminal independiente, 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, pero fallará porque no puede encontrar la etiqueta, y los pods entrarán en un estado ImagePullBackOff.

Análisis con Gemini CLI

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

  • 👉💬 Instrucción: 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 está en buen estado. 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 que se sabe que funciona.

Mantenimiento y evaluación de riesgos

El mantenimiento de la plataforma implica adelantarse a 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.

  • 👉💬 Instrucción: 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 de 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 nube. Al integrar un agente de IA directamente en tu flujo de trabajo de terminal a través de Gemini CLI y MCP, pasaste de ser un escritor manual de comandos a un director de intención. Este enfoque permite que los equipos de la plataforma amplíen su experiencia proporcionando una interfaz inteligente que se encarga de 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 resolución de problemas.

Resumen del lab

  • Conectividad: Conectaste correctamente la CLI de Gemini a la API de GKE con el Protocolo de contexto del modelo, lo que le brinda 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 garantizar la seguridad y, luego, implementaste recursos de Kubernetes sin editar manualmente el código YAML, lo que garantiza que se siguieron 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 promedio de recuperación, ya que la IA pudo resumir registros y eventos.

Limpieza

Para evitar que se apliquen 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.

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

Próximos pasos

Recomendaciones para ampliar la lectura: