DevOps & Cloud

Kubernetes en producción: Mejores prácticas 2026

Lo que necesitas saber para correr Kubernetes en producción sin dolor de cabeza.

Lectura: 10 min•Junio 2026

Las 4 áreas críticas

Crítico

Security first

RBAC, network policies, Pod Security Standards, secrets encryption, scan images en CI/CD.

Crítico

Alta disponibilidad

Multi-AZ deployments, pod disruption budgets, anti-affinity rules, readiness/liveness probes.

Crítico

Resource management

Requests y limits configurados, LimitRanges por namespace, VPA para auto-adjust.

Crítico

Monitoring & Alerting

Prometheus + Grafana, métricas de sistema y aplicación, alerts actionables.

Checklist de seguridad

Usar nombres de usuario de Service Account en vez de default
No correr contenedores como root
Implementar Pod Security Standards (Restricted)
Network policies por defecto deny-all
Encrypt secrets con KMS
Regular image scanning en registry
ReadOnly root filesystems
Capability dropping (drop ALL, add only needed)

Checklist de Alta Disponibilidad

Mínimo 2 réplicas por Deployment crítico
Anti-affinity para distribuir pods entre nodos
Pod Disruption Budgets configurados
Health checks (readiness + liveness) apropiados
Horizontal Pod Autoscaler con comportamiento definido
Topología Spread Constraints para multi-AZ
Graceful shutdown con preStop hook

Métricas esenciales a monitorear

MétricaTarget
CPU/Memory usagePor pod, container, node
Request latency (p50, p95, p99)Por servicio
Error rate (5xx)Alertas automáticas
Pod restartsInvestigar spikes
Storage usagePVCs y volúmenes efímeros
Network throughputDetectar bottlenecks

Errores comunes a evitar

No definir Resource Limits

Containers sin límites pueden greedy y afectar a otros. Siempre configura requests y limits.

Alto

Usar latest tag

Imposible hacer rollback. Usa tags específicos o digests SHA.

Alto

Ignorar Pod Disruption Budgets

Actualizaciones de cluster pueden causar downtime si no están protegidos.

Medio

No tener log aggregation

Logs en stdout se pierden. Usa Fluentd/Bitnami + Elasticsearch o Loki.

Medio

Un solo Health Endpoint

Separa /health/ready y /health/live. Read probes no deben depender de dependencias externas.

Bajo

Ejemplo: Deployment listo para producción

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  labels:
    app: my-app
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      securityContext:
        runAsNonRoot: true
        runAsUser: 10000
        fsGroup: 10000
      containers:
      - name: my-app
        image: myregistry/myapp:v1.2.3
        ports:
        - containerPort: 8080
        resources:
          requests:
            memory: "256Mi"
            cpu: "250m"
          limits:
            memory: "512Mi"
            cpu: "500m"
        readinessProbe:
          httpGet:
            path: /health/ready
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 5
        livenessProbe:
          httpGet:
            path: /health/live
            port: 8080
          initialDelaySeconds: 15
          periodSeconds: 20
        securityContext:
          readOnlyRootFilesystem: true
          capabilities:
            drop: ["ALL"]

¿Necesitas ayuda con Kubernetes?

Puedo revisar tu arquitectura Kubernetes, identificar riesgos y optimizar para producción.

Solicitar auditoría