The Day Kubernetes Forgot Everyone's Name
# The Day Kubernetes Forgot Everyone's Name
The quarterly onboarding campaign had just gone live.
Marketing celebrated.
Traffic climbed.
The autoscaler did exactly what it was designed to do.
Within minutes, nearly 500 new pods flooded the Kubernetes cluster.
Everything looked perfect.
Until the API gateway started responding... painfully slowly.
Not failing.
Just... waiting.
Five seconds.
Another five.
Retries multiplied. Dashboards lit up. CPU looked healthy on the application pods, databases were barely breaking a sweat, and network latency was normal.
Yet every request felt like it was searching for something it had forgotten.
The war room chased the usual suspects—Ingress, service mesh, database connections, even recent deployments.
Nothing.
Then someone noticed a tiny clue buried inside the logs.
DNS lookup timeout.
CoreDNS wasn't down.
It was suffocating.
Every newly created pod was asking thousands of DNS questions. Thanks to Kubernetes' default ndots:5 configuration, even simple external lookups generated multiple search-domain queries before reaching the actual destination. With NodeLocal DNSCache disabled, every pod hammered the same centralized CoreDNS service. CPU throttling kicked in, lookups stretched to five seconds, applications retried aggressively, and every retry created even more DNS traffic.
The cluster wasn't overwhelmed by users.
It was overwhelmed by introductions.
Every pod kept asking, "Who is everyone?"
The fix wasn't adding more application replicas—it was breaking the spiral. Tuning ndotsreduced unnecessary lookups, NodeLocal DNSCache served repeated queries locally on each node, sensible DNS cache TTLs prevented constant rediscovery, and Cilium's eBPF-based socket-level DNS acceleration further reduced dependency on centralized DNS paths.
Gradually, DNS latency disappeared.
Retries stopped.
The API gateway breathed again.
Production outages rarely announce themselves with obvious errors. Sometimes the entire platform slows down because the service discovery layer silently becomes the busiest component in the cluster.
That's why reading documentation alone isn't enough. Real production failures emerge from the interaction between Kubernetes internals, networking, scaling behavior, and application retries.
At InfraThrone, we recreate these cascading outage stories—not just to teach Kubernetes, but to help engineers think like the people who solve these incidents under pressure. Because the next latency spiral won't come with a hint saying, "Check CoreDNS first."
Discussion
to read and post comments.