DevOps
Actualizado el 6 de noviembre de 2026
Kubernetes (kubectl)
kubectl para el día a día: contextos, namespaces, consultas, pods, despliegues, depuración y manifests mínimos.
- #kubernetes
- #kubectl
- #k8s
- #contenedores
- #devops
Contexto y namespaces
| Acción | Comando |
|---|---|
| Listar los contextos disponibles | |
| Ver el contexto actual | |
| Cambiar de contexto (clúster) | |
| Fijar el namespace por defecto del contexto | |
| Listar namespaces | |
| Crear un namespace |
Consultar recursos
| Acción | Comando |
|---|---|
| Listar pods con nodo e IP | |
| Listar pods de todos los namespaces | |
| Filtrar por etiqueta | |
| Vigilar cambios en vivo | |
| Ver varios tipos a la vez | |
| Ver el manifest completo de un recurso | |
| Extraer un campo con JSONPath | |
| Ver detalle y eventos de un recurso |
Pods
| Acción | Comando |
|---|---|
| Seguir los logs de un pod | |
| Ver logs del contenedor anterior (tras un crash) | |
| Logs de un contenedor concreto del pod | |
| Logs de todos los pods de un despliegue | |
| Abrir una shell en el pod | |
| Redirigir un puerto local a un servicio | |
| Copiar un archivo desde el pod |
Despliegues
| Acción | Comando |
|---|---|
| Ver qué cambiaría antes de aplicar | |
| Aplicar manifests de un archivo o carpeta | |
| Esperar a que termine el despliegue | |
| Ver el historial de revisiones | |
| Volver a la revisión anterior | |
| Reiniciar los pods sin cambiar el manifest | |
| Escalar réplicas | |
| Cambiar la imagen de un contenedor |
Depuración
| Acción | Comando |
|---|---|
| Ver eventos ordenados por fecha | |
| Ver eventos con el comando dedicado | |
| Consumo de CPU y memoria por pod | |
| Consumo por nodo | |
| Añadir un contenedor de depuración a un pod | |
| Lanzar un pod temporal para probar la red |
kubectl top requiere metrics-server instalado en el clúster.
Crear manifests rápido
| Acción | Comando |
|---|---|
| Generar un Deployment sin crearlo | |
| Generar un Service para un Deployment | |
| Generar un ConfigMap desde un archivo | |
| Generar un Job | |
| Consultar la documentación de un campo |
Borrar recursos
| Acción | Comando |
|---|---|
| Borrar lo definido en un manifest | |
| Borrar un recurso por nombre | |
| Borrar pods por etiqueta | |
| Borrar un namespace y todo su contenido |
Manifest mínimo: Deployment y Service
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
labels:
app: web
spec:
replicas: 2
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: nginx:1.27
ports:
- containerPort: 80
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { memory: 256Mi }
---
apiVersion: v1
kind: Service
metadata:
name: web
spec:
selector:
app: web
ports:
- port: 80
targetPort: 80Aplícalo con kubectl apply -f web.yaml y pruébalo con kubectl port-forward svc/web 8080:80.