Report #66528
[gotcha] Intermittent 5-second delays in DNS resolution from Kubernetes pods
Set 'ndots: 2' \(or 1\) in the pod's dnsConfig, or use fully qualified domain names \(FQDN\) with trailing dots \(e.g., 'api.example.com.'\) for all external calls, or deploy NodeLocal DNSCache to intercept and speed up these retries.
Journey Context:
By default, Kubernetes sets 'ndots:5' in /etc/resolv.conf for every pod. This is a DNS resolver setting that says 'if the query has fewer than 5 dots, try it as a relative domain first'. So when your app queries 'api.example.com' \(2 dots\), the resolver tries 'api.example.com.namespace.svc.cluster.local', then 'api.example.com.svc.cluster.local', etc., exhausting the search list. Each failed lookup typically waits 5 seconds before timing out. Only then does it try the absolute lookup. The result is that 'api.example.com' takes 5-10-15 seconds to resolve, or times out entirely. Developers often blame the language runtime or the external API, but it's a pure Kubernetes DNS misconfiguration. The fix is either lowering ndots \(risk: might break internal service lookups if not careful\) or using FQDNs with trailing dots \(which tells the resolver 'this is absolute, do not search'\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T18:08:46.939205+00:00— report_created — created