Administrar un clúster con kubectl es la habilidad central para cualquiera que trabaje con Google Kubernetes Engine. Aquí encuentras los comandos clave de kubectl, cuándo usarlos y cómo conectarte a tu clúster desde la Cloud Shell o tu máquina local, sin perderte entre tantas opciones.
¿Qué es kubectl y cómo se conecta a un clúster?
Kubectl es la línea de comandos oficial para administrar clústeres de Kubernetes. Funciona como un modelo cliente-servidor: tú ejecutas comandos desde tu máquina o desde Cloud Shell, y ese cliente apunta al clúster remoto sin que tengas que conectarte por SSH a ningún servidor [00:36].
Esto significa que puedes administrar varios clústeres ubicados en distintas regiones o proveedores desde un único punto. Y aquí viene lo interesante: si recién empiezas, Google Cloud Shell ya trae kubectl preinstalado, así que no necesitas configurar nada [00:55].
¿Necesito instalar kubectl si uso Cloud Shell? No. Cloud Shell incluye kubectl y todas sus dependencias listas para usar. Solo necesitas instalarlo localmente si prefieres trabajar desde tu propia máquina.
¿Cómo me conecto a un clúster de GKE?
Dentro de Google Cloud, selecciona tu proyecto, entra al menú de Kubernetes, elige clústeres y haz clic en el clúster que quieras administrar. Luego, en los tres puntos de la derecha, presiona conectar [02:14].
Vas a ver dos opciones:
- Copiar el comando para ejecutarlo en local.
- Ejecutarlo directamente en Cloud Shell con un botón.
Con eso ya estás conectado y listo para lanzar comandos.
¿Qué comandos kubectl uso para revisar el estado del clúster?
Los primeros comandos que vas a usar todos los días son los que te muestran qué hay corriendo. Son tu radar dentro del clúster.
- kubectl get nodes: lista los nodos que sostienen tu clúster.
- kubectl get pods: muestra los pods activos.
- kubectl get deployments: lista los deployments configurados.
- kubectl get service: muestra los servicios corriendo actualmente.
- kubectl cluster-info: te da una vista general del estado del clúster completo [03:12].
Estos comandos no modifican nada, solo informan. Son perfectos para empezar a familiarizarte sin miedo a romper algo.
¿Cómo administro recursos con kubectl apply y delete?
Cuando ya quieres crear o eliminar componentes, entran los comandos de administración. El más usado es kubectl apply -f seguido del nombre de un archivo YAML: implementa todo lo que esté descrito en ese fichero sobre el clúster [03:45].
Para hacer lo contrario usas kubectl delete -f, que elimina del clúster los componentes definidos en ese mismo archivo.
Luego está kubectl scale deployment, que ajusta el número de réplicas, es decir, cuántos pods mínimos deben existir asociados a un deployment específico. Si no recuerdas qué son pods o deployments, conviene revisar la clase anterior sobre conceptos de Kubernetes.
¿Cuándo uso edit deployment y rollout restart?
kubectl edit deployment te deja modificar por línea de comandos el contenido de un deployment: cambiar labels, actualizar la imagen del contenedor, ajustar configuraciones [04:35]. Si te sientes más cómodo, también puedes editar el archivo .yaml en local y volver a aplicarlo con kubectl apply -f.
kubectl rollout restart le indica a un deployment que reinicie todos sus pods asociados. Es útil cuando necesitas que la imagen recargue configuraciones que solo se aplican al iniciar el contenedor [05:00].
¿Cómo hago debugging de pods con kubectl?
Cuando algo falla, necesitas comandos que te muestren qué está pasando dentro. Aquí es donde kubectl brilla como herramienta de inspección.
- kubectl describe pod: entrega toda la información asociada a un pod y los eventos que ha registrado.
- kubectl logs: imprime los registros generados por un pod específico.
- kubectl exec -it: te conecta directamente al pod como si fuera una máquina virtual, ideal cuando necesitas revisar archivos o procesos por dentro.
- kubectl top pod: muestra el consumo de recursos del pod, como RAM y CPU virtual, similar al top de Linux.
- kubectl events: lista los eventos del clúster completo, donde suelen aparecer errores que ayudan a resolver incidentes [06:15].
¿Qué hace kubectl exec -it? Te abre una sesión interactiva dentro del pod, como si entraras a una máquina virtual. Sirve para revisar archivos, procesos o configuraciones cuando algo no responde bien.
En la práctica, kubectl exec -it termina siendo uno de esos comandos que ejecutas en automático varias veces al día.
¿Existen interfaces gráficas para Kubernetes?
Sí, y son un alivio si la línea de comandos te abruma. Aunque no son productos de Google, las dos más populares son Rancher y Lens [07:30]. Ambas se conectan a tu clúster y te dan una vista visual de pods, deployments, servicios y métricas.
No reemplazan a kubectl, pero ayudan a entender qué está pasando mientras te acostumbras a los comandos.
¿Rancher y Lens son de Google? No. Son herramientas externas, pero funcionan con cualquier clúster de Kubernetes, incluido GKE. Las usas como complemento visual a kubectl.
A medida que practiques, vas a notar que estos comandos se vuelven mecánicos. ¿Cuál fue el primer comando de kubectl que te costó memorizar? Cuéntalo en los comentarios.