Cómo mitigar OOM en containerd por parsing ilimitado de imágenes en Docker y Kubernetes

Problema En entornos que ejecutan Docker o Kubernetes, el proceso containerd actúa como motor de bajo nivel para crear y gestionar contenedores. Cuando una imagen contiene archivos de usuarios o grupos extremadamente grandes, el parser interno de moby/sys/user intenta leerlos sin aplicar límites de tamaño. El consumo de RAM crece rápidamente, el kernel dispara el OOM killer y termina con containerd. La API de runtime desaparece, lo que impide crear nuevos contenedores y, en clústers, deja fuera de línea al nodo de control de Kubernetes. El impacto es de disponibilidad: los pods que dependan de ese nodo fallan, y el plano de control pierde capacidad de programar workloads hasta que se reinicie el proceso o el nodo. ...

July 8, 2026 · Ernesto

Cómo monitorizar y enfriar discos duros en un homelab con Docker y smartctl

Problema En muchos homelabs los discos duros se alojan en cajas externas (USB‑DAS, NAS caseros, etc.) sin una ventilación adecuada. Con el tiempo la temperatura de los HDDs supera los 45‑50 °C, lo que reduce la vida útil y provoca throttling. El síntoma típico es un incremento constante de los valores de temperatura reportados por smartctl, ruido de los discos y, en casos extremos, errores de I/O. La solución no es simplemente comprar un nuevo chasis; se necesita un método reproducible para monitorizar la temperatura, avisar cuando supera umbrales seguros y actuar añadiendo ventilación o ajustando la carga. ...

July 6, 2026 · Ernesto

Cómo usar Reticle para crear diagramas de infraestructura operables

Problema En entornos de producción y homelabs es habitual alternar entre documentación estática, dashboards de métricas y la terminal para ejecutar tareas. Esa fragmentación genera una visión parcial del estado real del sistema: el diagrama muestra la arquitectura, pero no refleja fallos; el monitor indica problemas, pero no muestra dónde están ubicados; la shell permite arreglar cosas, pero sin contexto visual. Cuando el equipo necesita entender rápidamente qué servicio está caído, qué nodo está saturado o cómo se relacionan los componentes, se pierde tiempo navegando entre varias herramientas. El reto es disponer de una única fuente de verdad que combine la topología, el estado en tiempo real y la capacidad de edición declarativa. ...

July 6, 2026 · Ernesto

Cómo automatizar el diagnóstico de incidentes en producción con IA auto‑hosted

Problema En entornos de producción, la respuesta a una alerta suele iniciar con una fase de “recolección”. Los ingenieros despiertan, consultan dashboards, descargan logs, revisan despliegues recientes y, solo después de varios minutos, empiezan a razonar sobre la causa raíz. Ese tiempo de “busy‑work” es costoso y, a menudo, se repite en cada incidente. Las soluciones SaaS que usan LLMs para correlacionar métricas y logs pueden reducir esa fricción, pero requieren enviar datos sensibles a la nube, algo inaceptable en muchas organizaciones por políticas de compliance o por miedo a fugas de información. ...

July 5, 2026 · Ernesto

Cómo diagnosticar y solucionar errores Connection Refused entre Nginx y contenedores Docker

Problema En entornos donde Nginx actúa como reverse proxy para uno o varios contenedores Docker, es frecuente encontrarse con respuestas 502 Bad Gateway o logs que indican connect() failed (111: Connection refused) while connecting to upstream. El síntoma típico es que el cliente (navegador, curl, Cloudflare Tunnel) llega a Nginx, pero Nginx no puede establecer la conexión TCP con el backend. El error se manifiesta como: 2026/07/05 02:31:31 [error] 22#22: *7 connect() failed (111: Connection refused) while connecting to upstream, client: X.X.X.X, server: example.com, request: "GET / HTTP/1.1", upstream: "http://172.29.0.2:8086/", host: "media.example.com" Este patrón aparece en cualquier stack que combine: ...

July 5, 2026 · Ernesto

Guía práctica para montar un homelab: pfSense firewall, Docker, VPN y Zabbix monitoring

Problema Montar un entorno de auto‑hosting que sea estable, seguro y fácil de escalar suele colapsar cuando se combinan varios componentes críticos: firewall, segmentación de red, acceso remoto y monitorización. El patrón típico es que el administrador tiene que lidiar con configuraciones aisladas, documentación dispersa y fallos de integración que aparecen al conectar Docker a una red VLAN protegida por pfSense, o al intentar que Zabbix descubra dispositivos detrás de un VPN. El resultado es un lab que funciona a medias, con puertos abiertos sin control, contenedores que no alcanzan los recursos de red y alertas perdidas. ...

July 5, 2026 · Ernesto

Cómo practicar DevOps con proyectos reales: despliegues, monitoreo y optimización de costos

Problema Muchos ingenieros recién graduados o con experiencia en desarrollo backend quieren pasar a roles de DevOps, pero se quedan en la teoría. Aprenden conceptos de arquitectura, bases de datos y redes, y luego instalan Docker, Kubernetes o Terraform sin enfrentarse a situaciones que aparecen en producción: un despliegue que se queda colgado, un aumento inesperado del gasto en la nube, o una alerta de monitoreo que no saben interpretar. El reto es crear un entorno de práctica que reproduzca esos dolores reales sin necesidad de montar infraestructuras costosas en proveedores públicos. ...

July 4, 2026 · Ernesto

Cómo obtener funcionalidad similar a Kubernetes sin desplegar un clúster completo

Problema Muchos entusiastas de homelab y pequeñas empresas quieren los beneficios de Kubernetes —aislamiento de red, despliegues declarativos, escalado sencillo— pero no pueden justificar la sobrecarga de recursos y la complejidad operativa que implica mantener varios nodos, certificados y control planes. El resultado típico es un clúster que consume entre el 15 % y el 25 % de la CPU/RAM disponible sin aportar carga útil real, o que sufre downtime por expiración de certificados y falta de HA. El reto es conseguir una capa de orquestación suficientemente flexible para: ...

July 2, 2026 · Ernesto

Cómo solucionar errores 502 Bad Gateway en Nginx al conectar frontend y backend en contenedores Docker

Problema En entornos donde una aplicación monolítica se ejecuta dentro de un contenedor y expone dos procesos –por lo general un frontend (Next.js, React, etc.) y un backend (NestJS, Express, etc.)– es frecuente colocar un servidor Nginx como reverse proxy interno. Cuando el proxy no logra establecer la conexión con el proceso backend, los navegadores devuelven un 502 Bad Gateway y, en la práctica, la UI queda atrapada en un bucle de carga (por ejemplo, al intentar iniciar sesión). El síntoma típico es una petición POST /api/... que nunca finaliza y, en los logs de Nginx, aparece: ...

July 2, 2026 · Ernesto

Cómo solucionar problemas de iptables MASQUERADE en Docker Compose

Problema En entornos Docker Compose donde un contenedor actúa como gateway entre dos redes (por ejemplo, una red privada y una pública), es habitual usar iptables con la regla MASQUERADE para que el tráfico saliente parezca provenir de la interfaz externa del gateway. Cuando la regla no se aplica, los paquetes siguen mostrando la IP interna del contenedor origen, lo que provoca fallos de conectividad y respuestas rechazadas por los servidores remotos. El síntoma típico es observar, con tcpdump, la IP del contenedor interno en la capa IP del tráfico que sale por la interfaz pública del gateway. ...

June 30, 2026 · Ernesto