Guías
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ónComando
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ónComando
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ónComando
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ónComando
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ónComando
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ónComando
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ónComando
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: 80

Aplícalo con kubectl apply -f web.yaml y pruébalo con kubectl port-forward svc/web 8080:80.