Mostrando entradas con la etiqueta kubernetes. Mostrar todas las entradas
Mostrando entradas con la etiqueta kubernetes. Mostrar todas las entradas

martes, 27 de octubre de 2026

Guía Práctica de Kubernetes: Los Comandos de kubectl que Sí o Sí Debes Conocer

Manejar Kubernetes puede parecer abrumador al principio debido a la gran cantidad de objetos y conceptos que maneja. Sin embargo, en el día a día como desarrollador o ingeniero de backend, terminas recurriendo al mismo conjunto de comandos de kubectl para diagnosticar, desplegar y administrar tus clústeres.

Guía Práctica de Kubernetes: Los Comandos de kubectl que Sí o Sí Debes Conocer


En este artículo he recopilado y categorizado los comandos de Kubernetes más utilizados, optimizados para acelerar tu flujo de trabajo y resolver problemas rápidamente.

1. Consultas y Listado (get): El pulso del clúster

Antes de modificar o depurar cualquier cosa, necesitas saber qué está pasando en tu clúster. Los comandos get son tu primera línea de visión.

  • kubectl get pods: Lista todos los pods en el namespace actual para verificar si están corriendo correctamente.

  • kubectl get pods -o wide: Muestra información extendida, ideal para conocer la dirección IP interna de cada pod y en qué nodo exacto están ejecutándose.

  • kubectl get svc: Muestra los servicios (Services) activos y los puertos que están exponiendo.

  • kubectl get deployments: Lista tus despliegues para revisar el estado de las réplicas deseadas frente a las actuales.

  • kubectl get nodes: Permite verificar la salud y disponibilidad de los nodos que componen tu clúster.

  • kubectl get all: Un comodín útil para obtener un resumen rápido de la mayoría de los recursos principales (pods, servicios, deployments, etc.) en un solo vistazo.

💡 Tip SEO / Pro: Si necesitas auditar todo el clúster sin importar el entorno, añade la bandera -A o --all-namespaces al final de cualquiera de estos comandos para buscar en todos los namespaces simultáneamente.

2. Depuración y Monitoreo (Debugging): Cuando las cosas fallan

Cuando una aplicación no arranca o un contenedor entra en bucle de fallo (CrashLoopBackOff), estas herramientas te salvan la vida:

  • kubectl describe [recurso] [nombre] (ej. kubectl describe pod mi-app-pod): Es el comando estrella para depurar. Muestra una radiografía completa del objeto, incluyendo variables de entorno, configuración de red y, lo más importante, el historial de eventos recientes (clave para detectar errores de imagen, falta de memoria o fallos de liveness/readiness probes).

  • kubectl logs [nombre-pod]: Imprime los registros (logs) de la aplicación dentro del contenedor.

    • Truco: Úsalo con la bandera -f para seguir la salida en tiempo real, o --tail=50 si solo quieres inspeccionar las últimas 50 líneas.

  • kubectl exec -it [nombre-pod] -- /bin/sh (o /bin/bash): Abre una terminal interactiva dentro del contenedor en ejecución. Es perfecto para probar conectividad interna, verificar si las variables de entorno llegaron bien o inspeccionar el sistema de archivos.

  • kubectl top pods / kubectl top nodes: Monitorea el consumo actual de CPU y memoria a nivel de pods o nodos (Nota: requiere que el Metrics Server esté instalado en tu clúster).

3. Gestión y Despliegues (Apply, Scale, Rollout)

Para administrar el ciclo de vida de tus aplicaciones de forma eficiente y bajo buenas prácticas DevOps:

  • kubectl apply -f [archivo.yaml]: El pilar del enfoque declarativo. Crea o actualiza recursos basándose en tus archivos de manifiesto YAML.

  • kubectl delete -f [archivo.yaml] (o kubectl delete pod [nombre]): Elimina los recursos especificados en un archivo o un objeto puntual de forma controlada.

  • kubectl scale deployment [nombre] --replicas=3: Te permite escalar de forma manual e inmediata el número de réplicas de un deployment ante un pico de tráfico.

  • kubectl rollout status deployment/[nombre]: Monitorea en tiempo real el progreso de una actualización continua (rolling update).

  • kubectl rollout undo deployment/[nombre]: El botón de pánico perfecto. Revierte de inmediato un despliegue a su versión anterior si la nueva versión introdujo un error crítico en producción.

4. Redes y Conectividad sin exponer servicios

  • kubectl port-forward [recurso/nombre] [puerto_local]:[puerto_remoto] (ej. kubectl port-forward svc/mi-servicio 8080:80): Redirige tráfico de red directamente desde tu máquina local hacia el clúster. Es extremadamente útil para realizar pruebas rápidas en bases de datos o APIs internas sin necesidad de configurar Ingress controllers ni exponer servicios al exterior.

5. Configuración y Contextos Múltiples

Si trabajas gestionando varios entornos (desarrollo, staging, producción) o múltiples clústeres:

  • kubectl config get-contexts: Lista todos los clústeres y contextos configurados en tu archivo local kubeconfig.

  • kubectl config use-context [nombre-contexto]: Cambia el contexto activo para apuntar de forma segura a otro clúster.

  • kubectl config set-context --current --namespace=[nombre]: Establece un namespace por defecto para tu sesión actual, evitando tener que escribir -n mi-namespace repetidamente en cada comando.

Un último consejo para optimizar tu tiempo

Escribir kubectl completo docenas de veces al día desgasta. Añade un alias rápido a la configuración de tu terminal (por ejemplo, alias k=kubectl) y compleméntalo con autocompletado (source <(kubectl completion zsh) o bash).

¿Qué otro comando o truco de Kubernetes utilizas en tu día a día? ¡Te leo en los comentarios!

Blogs Colombia