Skip to content

Default calico-node to the node's own DNS resolver - #5246

Open
caseydavenport wants to merge 1 commit into
tigera:masterfrom
caseydavenport:casey-node-dns-default
Open

Default calico-node to the node's own DNS resolver#5246
caseydavenport wants to merge 1 commit into
tigera:masterfrom
caseydavenport:casey-node-dns-default

Conversation

@caseydavenport

Copy link
Copy Markdown
Member

Description

calico-node runs before CNI is installed, so cluster DNS is not reachable on the node when it starts. It inherited the operator's ClusterFirstWithHostNet policy, leaving the CoreDNS ClusterIP as its only resolver. On a cluster where the Kubernetes API server is reachable only by name (EKS, AKS) that is circular, and the rollout wedges on the first node: CoreDNS needs CNI, and CNI is installed by calico-node.

calico-node needs no cluster DNS of its own. The only Service it resolves is Goldmane, and the operator already gives it a host alias for that. So it defaults to the node's own resolver, and inherits the operator's dnsPolicy and dnsConfig only when the operator has an explicit dnsConfig, which stays the escape hatch for clusters that need something else.

Fixes #1746
Fixes projectcalico/calico#10683

Release Note

Fixed a deadlock on clusters where the Kubernetes API server is reachable only by name, by defaulting calico-node to the node's own DNS resolver.

calico-node runs before CNI is installed, so cluster DNS is not reachable
when it starts. It now inherits the operator's DNS settings only when the
operator has an explicit dnsConfig.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

2 participants