How a single dead DNS pod silently broke one-third of API gateway traffic

An API gateway began returning 'Upstream Service Unavailable' errors for roughly a third of all requests, with no code changes, deployments, or backend failures to explain it. The root cause was an nginx worker holding a long-lived UDP socket pointed at a CoreDNS pod that Karpenter had already replaced during routine node cycling. Because nginx only reopens a DNS socket on an explicit error — not on a timeout — the worker kept querying a pod that no longer existed, causing silent DNS failures and downstream 502s. A misconfigured nginx setting allowed one worker to monopolize incoming connections, meaning a single broken socket effectively crippled the entire pod. Engineers confirmed the diagnosis by predicting failure patterns and deliberately deleting a live CoreDNS pod, ruling out an initially suspected port-exhaustion theory.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)
Log in to join the discussion and vote.
Log in