Codelab: Administra Kubernetes con kubectl-ai, un asistente de Kubernetes potenciado por IA

1. Introducción

kubectl-ai es una interfaz inteligente potenciada por IA que traduce la intención del usuario en operaciones precisas de Kubernetes, lo que hace que la administración de Kubernetes sea más accesible y eficiente.

d62a763b2dba5ba7.png

Actividades

  • Trabajarás con kubectl-ai, una herramienta potenciada por IA que funciona como asistente de Kubernetes para administrar un clúster de GKE.

Qué aprenderás

  • Crearás un clúster de GKE y configurarás kubectl-ai..
  • Realizarás tareas de Kubernetes, como administrar, crear y aplicar parches a recursos con clústeres y recursos de solución de problemas.

Requisitos

  • Navegador web Chrome
  • Una cuenta de Gmail
  • Un proyecto de Cloud con la facturación habilitada
  • Una clave de API de Gemini

En este codelab, se espera que el usuario tenga conocimientos básicos de Kubernetes.

2. Antes de comenzar

Crea un proyecto

  1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información para verificar si la facturación está habilitada en un proyecto .
  3. Usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en Google Cloud y que viene precargado con bq. Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Imagen del botón Activar Cloud Shell

  1. Una vez que te conectes a Cloud Shell, verifica que ya te autenticaste y que el proyecto se configuró con el ID de tu proyecto con el siguiente comando:
gcloud auth list
  1. En Cloud Shell, ejecuta el siguiente comando para confirmar que el comando gcloud conoce tu proyecto.
gcloud config list project
  1. Si tu proyecto no está configurado, usa el siguiente comando para hacerlo:
gcloud config set project <YOUR_PROJECT_ID>
  1. Habilita las APIs requeridas con el siguiente comando. Este proceso puede tardar unos minutos, así que ten paciencia.
gcloud services enable cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       compute.googleapis.com \
                       container.googleapis.com

Si el comando se ejecuta correctamente, deberías ver un mensaje similar al que se muestra a continuación:

Operation "operations/..." finished successfully.

Si olvidas alguna API, puedes habilitarla durante el proceso de implementación.

Consulta la documentación para ver los comandos y el uso de gcloud.

3. Configura el clúster de GKE

En este paso, configuraremos un clúster de GKE en el que ejecutaremos nuestros comandos. Asegúrate de haber seguido los pasos anteriores, configurado el ID del proyecto correcto y habilitado los servicios necesarios en tu proyecto de Google Cloud.

Crea un clúster de GKE

Ejecuta el siguiente comando que se proporciona en Cloud Shell. Si quieres crear el clúster en otra zona, puedes cambiar el valor de --zone.

gcloud container clusters create my-gke-cluster \
       --num-nodes 2 \
       --machine-type e2-standard-4 \
       --zone us-central1-a

Este proceso puede tardar en completarse, así que ten paciencia. Una vez que se complete, deberías ver un resultado similar al que se muestra a continuación:

Note: Your Pod address range (`--cluster-ipv4-cidr`) can accommodate at most 1008 node(s).
Creating cluster my-gke-cluster in us-central1-a... Cluster is being health-checked (Kubernetes Control Plane is healthy)...done.                                                                                                             
Created [https://container.googleapis.com/v1/projects/YOUR_PROJECT_ID/zones/us-central1-a/clusters/my-gke-cluster].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-central1-a/my-gke-cluster?project=YOUR_PROJECT_ID
kubeconfig entry generated for my-gke-cluster.
NAME: my-gke-cluster
LOCATION: us-central1-a
MASTER_VERSION: 1.33.4-gke.1350000
MASTER_IP: 34.59.221.183
MACHINE_TYPE: e2-standard-4
NODE_VERSION: 1.33.4-gke.1350000
NUM_NODES: 2
STATUS: RUNNING
STACK_TYPE: IPV4

Verifica los detalles del clúster de GKE

Primero, recuperemos las credenciales del clúster:

gcloud container clusters get-credentials my-gke-cluster \
                 --zone us-central1-a

Deberías ver un resultado como el que se muestra a continuación:

Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.

A continuación, verifiquemos los detalles del clúster:

kubectl get nodes

Deberías ver un resultado similar al siguiente:

NAME                                            STATUS   ROLES    AGE     VERSION
gke-my-gke-cluster-default-pool-c63d5936-2f1z   Ready    <none>   2m58s   v1.33.4-gke.1350000
gke-my-gke-cluster-default-pool-c63d5936-fqtl   Ready    <none>   3m2s    v1.33.4-gke.1350000

Por último, validemos el espacio de nombres del clúster:

kubectl get namespaces

Deberías ver un resultado similar al siguiente:

NAME                          STATUS   AGE
default                       Active   6m16s
gke-managed-cim               Active   4m21s
gke-managed-system            Active   4m6s
gke-managed-volumepopulator   Active   4m
gmp-public                    Active   3m40s
gmp-system                    Active   3m41s
kube-node-lease               Active   6m16s
kube-public                   Active   6m16s
kube-system                   Active   6m16s

4. Instala la CLI de kubectl-ai

Usaremos la forma de instalación rápida (recomendada) de kubectl-ai CLI.

Proporciona el siguiente comando en Cloud Shell:

curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash

Esto descargará e instalará kubectl-ai CLI, y deberías ver un mensaje al final que diga lo siguiente:

✅ kubectl-ai installed successfully! Run 'kubectl-ai --help' to get started.

Para verificar si el comando kubectl-ai funciona, ejecuta el siguiente comando:

kubectl-ai

Nota: El comando anterior devolverá el error que indica que

creating llm client: GEMINI_API_KEY environment variable not set

Ten en cuenta que kubectl-ai admite modelos de IA de gemini, vertexai, azopenai, openai, grok, bedrock y proveedores de LLM locales, como ollama y llama.cpp. En nuestro caso, usaremos Gemini (Google) y necesitaremos obtener una clave de API para ello a través de Google AI Studio. Una vez que hayas generado la clave y tengas el valor listo, usa el siguiente comando en Cloud Shell para establecer la variable de entorno GEMINI_API_KEY que apunta a tu clave.

export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"

Nota: Usa "GEMINI_API_KEY" solo como valor de clave.

Vuelve a iniciar kubectl-ai y, esta vez, verás que se inicia y espera tu comando en su terminal interactiva.

$ kubectl-ai

  Hey there, what can I help you with today?                                  

>>>  

Prueba algunas preguntas relacionadas con los comandos de kubectl en la instrucción. A continuación, se incluyen algunos ejemplos:

  • What is the command to get the nodes in a cluster?
  • list pods

Para salir de la terminal de kubectl-ai, escribe quit.

5. Usa kubectl-ai

Ahora que configuraste kubectl-ai correctamente, el punto clave que se debe destacar aquí es que ahora puedes interactuar con el clúster usando consultas en lenguaje natural. Probemos algunos otros comandos:

Ejecutemos el siguiente comando:

kubectl-ai --model gemini-2.5-flash "list pods in default namespace"

Esto producirá el siguiente resultado:

Running: kubectl get pods -n default

There are no resources found in the default namespace.      

>>>

Observa cómo tradujo nuestra consulta en lenguaje natural para enumerar los Pods al comando kubectl equivalente.

Además, ten en cuenta que ahora estamos dentro de la terminal interactiva kubectl-ai (>>>), donde podemos seguir interactuando con ella.

Ejecuta el siguiente comando:

how many pods are there in kube-system namespace

El resultado se muestra a continuación:

>>> how many pods are there in kube-system namespace

Running: kubectl get pods -n kube-system --output=jsonpath='{.items[*].metadata.name}'

There are 18 pods in the kube-system namespace.

Comando de disparo único

En la sección anterior, se mostró cómo iniciar kubectl-ai y permanecer en la terminal interactiva para ingresar comandos posteriores. Esto no es adecuado para los comandos que deseas ejecutar de forma autónoma y sin un mensaje interactivo que espere el siguiente comando.

Ingresa el método de comando de un solo disparo con el parámetro --quiet.

Este es un comando de muestra para crear una implementación.

kubectl-ai --quiet "create a deployment named nginx with 2 replicas" --skip-permissions

Esto hará que se ejecute el comando create deployment, como se muestra a continuación:

Running: kubectl create deployment nginx --image=nginx --replicas=2

I have created a deployment named nginx with 2 replicas. You can verify this by running kubectl get deployments .

De esta manera, pudimos configurar kubectl-ai para que interactúe con nuestro clúster de GKE actual.

Acabamos de ejecutar algunos comandos y demostramos un modo de trabajar con kubectl-ai. Puedes canalizar el resultado a otras herramientas, comprender los errores, la persistencia entre diferentes ejecuciones de sesiones de kubectl-ai y mucho más. Consulta la sección Uso de la documentación de la herramienta.

6. (Opcional) Interfaz de chat de kubectl-ai

En ciertas situaciones, es posible que prefieras trabajar con kubectl-ai a través de una interfaz de chat estándar. Kubectl-ai incluye su propia interfaz de IU que puedes iniciar con el siguiente comando en Cloud Shell:

kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080

Se iniciará la utilidad en una interfaz de chat y deberías ver un resultado similar al siguiente:

listening on http://[::]:8080

Haz clic en Vista previa en la Web en Cloud Shell, como se muestra a continuación:

f990712162e8e924.png

Luego, haz clic en Vista previa en el puerto 8080. Se iniciará un navegador y estará disponible la interfaz de chat web, como se muestra a continuación:

90fce57ad7f16842.png

Esta es una consulta de ejemplo que ejecutamos en la interfaz de chat:

6a304d227d3fa5a6.png

Prueba otras búsquedas en esta interfaz. También proporciona sugerencias sobre qué otras búsquedas en lenguaje natural podrías ejecutar.

7. Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud, es importante que borres los recursos que creamos durante este taller.

Si no necesitas el clúster de GKE que creamos en la sección anterior de este lab, puedes borrarlo con el siguiente comando:

gcloud container clusters delete my-gke-cluster --zone=us-central1-a

8. Felicitaciones

Felicitaciones. Usaste correctamente kubectl-ai, un asistente de Kubernetes potenciado por IA para administrar tu clúster de Kubernetes a través de consultas en lenguaje natural. Para obtener más información, consulta los recursos que se indican en la siguiente sección.

9. Recursos