Skip to content

Comandos de kubectl explicados

Los comandos de kubectl del día a día, agrupados por tarea: leer el clúster, inspeccionar cargas de trabajo, aplicar y revertir cambios, exponer servicios, gestionar nodos y crear objetos de configuración. Cada fila empareja el comando con una invocación realista.

kubectl es tu control sobre un clúster de Kubernetes. El modelo es declarativo: normalmente aplicas un manifiesto (apply -f) en lugar de crear cosas de forma imperativa, y luego lees el resultado (get, describe, logs). Los comandos de abajo cubren la operación diaria; acompáñalos con un flag de namespace (-n name) cuando no estés en el namespace por defecto.

Tabla de referencia · 59 entradas
59 of 59 rows
Clúster y contexto
Muestra dónde se ejecutan el plano de control y los servicios principales.kubectl cluster-info
Lista los clústeres y namespaces entre los que puedes cambiar.kubectl config get-contexts
Cambia a otro contexto de clúster o namespace.kubectl config use-context my-prod
Fija el namespace por defecto del contexto actual.kubectl config set-context --current --namespace=staging
Renombra un contexto guardado en tu kubeconfig.kubectl config rename-context old-name prod
Lista todos los tipos de recursos que conoce el clúster.kubectl api-resources
Muestra las versiones de Kubernetes del cliente y del servidor.kubectl version
Muestra los campos que admite un recurso, leídos del esquema de la API.kubectl explain pod.spec.containers
Comprueba si el usuario actual puede ejecutar una acción dada.kubectl auth can-i delete pods
Inspección de cargas de trabajo
Lista los pods y su estado; añade -o wide para ver nodo e IP.kubectl get pods -A
Lista los recursos habituales de un namespace en una sola llamada.kubectl get all
Añade columnas de nodo e IP a cualquier comando get.kubectl get pods -o wide
Muestra un recurso como el manifiesto YAML completo que hay detrás.kubectl get deploy/web -o yaml
Lista los deployments y cuántas réplicas están listas.kubectl get deployments
Lista los statefulsets y sus réplicas listas.kubectl get statefulsets
Lista los jobs por lotes y los cron jobs programados.kubectl get jobs,cronjobs
Muestra eventos, labels y estado de un pod.kubectl describe pod web-abc
Muestra la capacidad, las condiciones y los pods en ejecución de un nodo.kubectl describe node node-1
Muestra la salida estándar de un pod; -f para seguir, --previous para el último fallo.kubectl logs -f web-abc
Ejecuta un comando dentro de un pod en ejecución.kubectl exec -it web-abc -- sh
CPU y memoria en vivo de pods o nodos (requiere metrics-server).kubectl top pods
Lista eventos recientes como pulls fallidos y backoffs.kubectl get events -A --sort-by=.lastTimestamp
Lista las reglas de ingress y sus direcciones de balanceador.kubectl get ingress
Copia archivos entre tu máquina y un pod en ejecución.kubectl cp web-abc:/var/log/app.log ./app.log
Bloquea hasta que un recurso cumple una condición.kubectl wait --for=condition=ready pod -l app=web
Lanza un pod desechable desde una imagen, sin manifiesto.kubectl run debug --rm -it --image=busybox -- sh
Aplicar, escalar, desplegar
Muestra qué cambiaría apply, sin cambiar nada.kubectl diff -f deploy.yaml
Crea o actualiza recursos desde un archivo de manifiesto.kubectl apply -f deploy.yaml
Aplica manifiestos y borra los objetos que salieron de ellos.kubectl apply -f dir/ --prune -l app=web
Abre un recurso en vivo en tu editor y aplica al guardar.kubectl edit deploy/web
Cambia unos pocos campos de un recurso en vivo.kubectl patch deploy/web --patch-file fix.json
Apunta los contenedores de un deployment a una nueva imagen.kubectl set image deploy/web web=nginx:1.27
Reemplaza un objeto, borrándolo y recreándolo si hace falta.kubectl replace --force -f deploy.yaml
Elimina los recursos declarados en un archivo de manifiesto.kubectl delete -f deploy.yaml
Cambia el número de réplicas de un deployment.kubectl scale deploy/web --replicas=4
Observa un rollout hasta que termina o falla.kubectl rollout status deploy/web
Lista las revisiones por las que ha pasado un rollout.kubectl rollout history deploy/web
Reinicia todos los pods de un deployment, de uno en uno.kubectl rollout restart deploy/web
Revierte un deployment a su revisión anterior.kubectl rollout undo deploy/web
Servicios y redes
Lista los servicios con su tipo e IP de clúster.kubectl get svc
Muestra qué IPs de pod respaldan actualmente cada servicio.kubectl get endpoints web
Crea un servicio que expone un conjunto de pods; --type=NodePort o LoadBalancer alcanza el exterior del clúster.kubectl expose deploy/web --port=80
Muestra la dirección del balanceador tras cada ingress (alfa).kubectl ingress status -A
Lista las políticas que restringen el tráfico de los pods.kubectl get networkpolicies
Crea un túnel desde un puerto local a un pod o servicio.kubectl port-forward svc/web 8080:80
Nodos y mantenimiento
Lista los nodos del clúster y su estado.kubectl get nodes -o wide
Marca un nodo como no programable (sin pods nuevos).kubectl cordon node-1
Vuelve a marcar un nodo como programable.kubectl uncordon node-1
Desaloja los pods de un nodo y lo marca como no programable.kubectl drain node-1 --ignore-daemonsets
Añade o quita un taint que ahuyenta los pods de un nodo.kubectl taint node node-1 key=value:NoSchedule
Borra de inmediato un pod atascado, sin apagado ordenado.kubectl delete pod web-abc --grace-period=0 --force
Objetos y configuración
Crea un namespace nuevo para acotar recursos.kubectl create namespace staging
Lista los namespaces y su estado.kubectl get namespaces
Guarda claves o archivos de configuración como objeto del clúster.kubectl create configmap app --from-file=config.yaml
Lista los configmaps del namespace.kubectl get configmaps
Guarda una contraseña o certificado como secret.kubectl create secret generic db --from-literal=password=s3cret
Lista los secrets del namespace.kubectl get secrets
Añade o quita un label en un recurso.kubectl label pod web-abc tier=backend
Añade metadatos con los que los selectores no pueden coincidir.kubectl annotate deploy/web release=july