Upgrade to Pro — share decks privately, control downloads, hide ads and more …

¿Y ahora qué rompi? Troubleshooting en Kubernet...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

¿Y ahora qué rompi? Troubleshooting en Kubernetes para humanos

Avatar for Bianca Torres

Bianca Torres

July 19, 2025
Tweet

More Decks by Bianca Torres

Other Decks in Technology

Transcript

  1. ¿Y ahora qué rompi? Troubleshooting en Kubernetes para humanos linkedin.com/in/bianca-torres-chumbes

    @bnkintech 👩‍💻 DevOps Engineer en Globant 🤝 Voluntaria en WIT Perú (Women in Tech) ☁️ Voluntaria en AWS Girls Perú Bianca Torres
  2. Los 5 pasos del troubleshooting humano 1. Observa el síntoma.

    2. Verifica el estado del recurso. 3. Lee logs y eventos. 4. Revisa configuraciones. 5. Prueba una hipótesis a la vez.
  3. kubectl logs <pod> Muestra los logs del pod (si tiene

    un solo contenedor). kubectl logs <pod> -c <container> Para pods con múltiples contenedores, especifica el nombre del contenedor. kubectl logs -f <pod> Sigue los logs en tiempo real ("follow"), útil para ver qué pasa cuando accedes a la app. kubectl logs <pod> --tail=100 Muestra solo las últimas 100 líneas. Evita ruido si hay muchos logs antiguos. kubectl logs -l app=miapp Muestra logs de todos los pods con esa label. Ideal para ver comportamiento en réplicas.
  4. kubectl logs deployment/<nombre> --all- containers=true Ver logs de todos los

    contenedores de un Deployment sin saber los nombres de los pods. kubectl logs --previous <pod> Muestra los logs del intento de ejecución anterior (por ejemplo, si el pod se reinició). kubectl logs -n ingress-nginx -l app.kubernetes.io/component=controller Logs del controlador Ingress (ej. NGINX). Muy útil para errores 502, 404, upstream, etc. kubectl logs job/<nombre> Ver logs de un Job o CronJob (una sola ejecución).
  5. Tips clave para la vida real 🐞 Errores en Pods

    ✅ Si el pod está en Running pero algo falla ¡revisa los logs! 🚨 CrashLoopBackOff casi siempre es mala configuración. Revisa logs, variables de entorno y probes (readiness/liveness). ⏳ Si el pod está en Pending, usa: “kubectl describe pod”. Puede faltar CPU/RAM, PVC o nodeSelector inválido. 🐳 Si el pod no arranca por la imagen. Verifica nombre, imagePullPolicy y credenciales si es privada. 🌐 Problemas de Red y Servicios 🔍 Un Service sin endpoints no sirve “kubectl get endpoints”, si ves <none>, probablemente el selector no coincide con los labels del pod. 🌐 Problemas de DNS dentro del clúster: “kubectl exec -it <pod> -- nslookup <service>”
  6. Tips clave para la vida real 🚪 Errores en Ingress

    🔁 Para errores 502/504, revisa los logs del Ingress Controller. 🔒 Ingress con TLS mal configurado no enruta. Verifica secretName y anotaciones correctamente. 🔍 Diagnóstico general 📋 Los logs no muestran errores de red o permisos, usa “kubectl describe” 📆 Los eventos son tus amigos “kubectl get events --sort-by=.metadata.creationTimestamp” 🧭 ¿No encuentras el recurso? Asegúrate del namespace correcto o usa “--all-namespaces”
  7. Herramientas súper útiles: CLI Tools k9s: TUI para navegar Kubernetes

    en la terminal kubectx / kubens: cambia de contexto y namespace rápido stern o kubetail: para ver logs de múltiples pods en tiempo real httpie o curl para probar servicios internos Visuales Lens: UI para clusters Kubernetes (ideal para aprender) Octant: dashboard local para explorar recursos Kubernetes Dashboard: UI oficial (más básica) KubeForwarder: para port-forward visual sin usar terminal