Report #59908
[gotcha] Kubernetes DNS lookup latency and NXDOMAIN storms due to ndots:5 in resolv.conf
Use fully qualified domain names \(trailing dot\) for external lookups, or set ndots:2 in pod DNSConfig, or use alias records for internal services. For high-volume microservices, deploy NodeLocal DNSCache to absorb lookup load.
Journey Context:
By default, Kubernetes injects resolv.conf with 'search default.svc.cluster.local svc.cluster.local cluster.local' and 'options ndots:5'. When an app queries 'database', if it contains fewer than 5 dots, the resolver tries: database.default.svc.cluster.local, database.svc.cluster.local, database.cluster.local, then finally database. This causes 4x DNS queries for every external lookup, overwhelming CoreDNS and causing timeouts. The fix is to use 'database.' \(FQDN with trailing dot\) to skip search path, or lower ndots to 2 \(since cluster-local names have 3\+ dots\), or use NodeLocal DNSCache to reduce cross-node traffic.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T07:02:34.372409+00:00— report_created — created