A DNS service migration completes and later only pods on newly added nodes see timeouts or stale resolution results.
A pod resolves services on old nodes and times out on fresh nodes because CoreDNS was updated but the node local caching DaemonSet still carries the previous upstream service IP
The cluster DNS service is healthy, yet new nodes cache toward an obsolete upstream because one local layer was not rolled with the CoreDNS change.
Scenario
What to check first
- Identify the primary failure signal in the Cluster DNS Moved, the Node Local Cache Kept the Old Upstream scenario.
- Separate visible symptoms from the underlying technical dependency.
- Describe the safest recovery path and the follow-up prevention work.
Checking checklist
- Summarize the current impact and the last known change.
- Collect direct evidence from logs, runtime state, and configuration before changing anything.
- Separate immediate recovery from permanent prevention work.
Recovery and prevention
Compare node-local cache upstream config with current CoreDNS service identity before replacing CoreDNS pods.
Questions worth viewing together
Community-field Kubernetes problem inspired by Kubernetes community DNS discussions where node-local caches kept an old CoreDNS upstream after migration. Node-local DNS layers can freeze cluster DNS history longer than operators expect.
Teams often blame CoreDNS performance when the local cache is still talking to the old service IP.
DNS service migrations should include every node-local caching layer, not only the core deployment.
Similar cases seen in the field