DEV Community

Cover image for Administración Kubernetes
Andres C
Andres C

Posted on • Edited on

Administración Kubernetes

Hoy quiero compartir con ustedes una guía muy útil para quienes trabajamos con Kubernetes. En esta entrada encontrarás los comandos más esenciales de kubectl para gestionar clústeres, pods, despliegues, servicios, configuraciones y más.


🛠️ Primeros pasos con kubectl

Para administrar y obtener información sobre un clúster de Kubernetes, puedes usar la herramienta de línea de comandos kubectl, que es el cliente oficial de Kubernetes.

1️⃣ Instalar kubectl

Asegúrate de tener kubectl instalado en tu máquina. Puedes encontrar instrucciones de instalación en la documentación oficial de Kubernetes:

🔗 Instalar kubectl

2️⃣ Configurar kubectl

Después de instalarlo, necesitas configurar kubectl para conectarte al clúster. Esto normalmente implica:

  • Proporcionar la dirección del servidor API del clúster.
  • Establecer las credenciales de autenticación necesarias.

Puedes hacerlo utilizando el comando:

kubectl config
Enter fullscreen mode Exit fullscreen mode

🚀 Comandos Esenciales

A continuación, comandos por categoría para que puedas navegar Kubernetes con soltura:


📦 Comandos de clúster

kubectl cluster-info # Muestra información del clúster
kubectl get nodes -o wide # Lista todos los nodos y muestra sus IPs
Enter fullscreen mode Exit fullscreen mode

🐳 Comandos de pods

kubectl get pods # Lista todos los pods
kubectl get pods -o wide # Información detallada de pods
kubectl get pods -l <label>=<valor> # Filtra pods por etiqueta
kubectl get pod <nombre> # Muestra un pod específico
kubectl describe pod <pod> # Detalles del pod
kubectl logs <pod> # Muestra logs de un pod
kubectl exec -it <pod> -- <cmd> # Ejecuta un comando en un pod
kubectl delete pod <pod> # Elimina un pod
kubectl explain pod <recurso> # Muestra descripción del recurso Pod
Enter fullscreen mode Exit fullscreen mode

🚢 Comandos de despliegue

Estos comandos te permiten gestionar despliegues (Deployments), que son controladores que administran el ciclo de vida de tus pods y aseguran que el estado deseado se mantenga activo en el clúster.

kubectl create deployment <nombre> --image=<imagen> # Crea un nuevo despliegue
kubectl get deployments # Lista todos los despliegues
kubectl describe deployment <nombre> # Detalles de un despliegue específico
kubectl scale deployment <nombre> --replicas=<número> # Escala un despliegue a más (o menos) réplicas
kubectl rollout restart deployment/<nombre> # Reinicia el despliegue
kubectl rollout status deployment/<nombre>  # Muestra el estado del rollout
kubectl create deployment <nombre> --image=<imagen> -o yaml # Genera el YAML del despliegue sin aplicarlo
kubectl create deployment <nombre> --image=<imagen> -o yaml --dry-run=client # Genera el YAML del Deployment sin aplicarlo.
kubectl create deployment <nombre> --image=<imagen> -o yaml --dry-run=client > nombre.yaml # Genera y guarda el YAML del Deployment en un archivo.
Enter fullscreen mode Exit fullscreen mode

🌐 Comandos de servicios

Los servicios permiten exponer aplicaciones ejecutándose en tus pods, ya sea para el acceso interno o externo.

kubectl get services # Lista todos los servicios
kubectl describe service <nombre> # Detalles de un servicio específico
kubectl expose pod <nombre> # Crea un servicio que expone un pod
kubectl delete service <nombre> # Elimina un servicio
kubectl port-forward <pod> <puerto-local>:<puerto-remoto> # Redirige tráfico del host al pod
Enter fullscreen mode Exit fullscreen mode

🧩 ConfigMaps y Secrets

ConfigMaps y Secrets te permiten manejar configuración y datos sensibles (como contraseñas o tokens) por separado del código de tus aplicaciones.

kubectl create configmap <nombre> --from-literal=<clave>=<valor> # Crea un ConfigMap desde un valor literal
kubectl create secret generic <nombre> --from-literal=<clave>=<valor> # Crea un Secret genérico
kubectl get configmaps # Lista todos los ConfigMaps
kubectl get secrets # Lista todos los Secrets
kubectl describe configmap <nombre> # Detalla un ConfigMap específico
Enter fullscreen mode Exit fullscreen mode

🗂️ Namespaces

Los namespaces permiten dividir recursos dentro de un mismo clúster en espacios lógicos aislados.

kubectl get namespaces # Lista todos los namespaces
kubectl create namespace <nombre> # Crea un nuevo namespace
kubectl delete namespace <nombre> # Elimina un namespace
kubectl config set-context --current --namespace=<nombre> # Cambia el contexto actual al namespace indicado
Enter fullscreen mode Exit fullscreen mode

🛠️ Recursos

Manejo general de recursos definidos en archivos YAML o JSON.

kubectl apply -f <archivo> # Aplica un archivo de configuración
kubectl edit <tipo> <nombre> # Edita un recurso directamente desde el editor
kubectl delete -f <archivo> # Elimina un recurso definido en archivo
kubectl get <tipo> # Lista recursos por tipo
kubectl describe <tipo> <nombre> # Muestra detalles de un recurso específico
Enter fullscreen mode Exit fullscreen mode

📊 Estadísticas y eventos

Estos comandos te ayudan a monitorear el uso de recursos y eventos recientes en el clúster.

kubectl top nodes # Muestra el uso de CPU/Memoria por nodo
kubectl top pods # Muestra el uso de CPU/Memoria por pod
kubectl events # Lista eventos recientes (versión antigua)
kubectl get events # Lista eventos recientes (formato moderno)
Enter fullscreen mode Exit fullscreen mode

🔐 Permisos

Consulta sobre roles definidos en el clúster, útiles para manejar RBAC (control de acceso basado en roles).

kubectl get roles # Lista todos los roles definidos en el clúster
Enter fullscreen mode Exit fullscreen mode

¿Tienes algún comando favorito que no aparece aquí? ¡Déjalo en los comentarios! 👇


¿Te gustaría ver más contenido como este? ¡Sígueme para más tips de DevOps y Kubernetes en español! 🚀🐳


Top comments (0)