Apagado controlado en servicios Node.js en producción

Cada vez que despliegas un servicio Node.js sin un manejador de apagado adecuado, estás jugando con las solicitudes en curso. El proceso recibe SIGTERM, Node.js lo ignora por defecto, Kubernetes eventualmente envía SIGKILL, y cualquier solicitud en curso recibe un error de conexión reiniciada. Esto ocurre en cada despliegue gradual, cada expulsión de pod y cada evento de reducción de escala.

La mayoría de los equipos solo descubren el problema a través de reportes de usuarios: 503 intermitentes durante despliegues pico que son difíciles de reproducir localmente. La solución no es complicada, pero requiere entender exactamente qué ocurre durante la secuencia de terminación de Kubernetes y conectar algunas piezas en el orden correcto.