Init pulls and startup checks pass while steady-state service calls begin failing under the same FQDN policy.
A Cilium FQDN policy allows image pulls and blocks a later gRPC dependency
Bootstrap traffic works, yet the later workload uses a different DNS path that yields IPs outside the policy's learned set.
Scenario
What to check first
- Identify the primary failure signal in the The Pod Asked DNS Through One Mouth at Startup and Through Another Once the Sidecar Took Over 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 bootstrap and runtime DNS paths before adding broad CIDRs or removing FQDN enforcement.
Questions worth viewing together
Community-field Kubernetes problem inspired by Cilium discussions where bootstrap DNS learning differed from steady-state resolver behavior. FQDN policies can diverge when different stages of the pod lifecycle query through different resolvers and get different answers.
Teams often blame gRPC retries when the allowed IP set was learned from an earlier resolver path only.
Clusters with node-local DNS or sidecar resolver changes should validate FQDN policy behavior across startup and steady state.
Similar cases seen in the field