You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
integration: load br_netfilter so pod ClusterIP DNS works on arm64
The arm64 CI diagnostics showed CoreDNS healthy and the kube-dns Service backed
by a ready endpoint, yet the operator pod's lookups to the kube-dns ClusterIP
timed out. That is the signature of bridge netfilter being off: with
br_netfilter unloaded, bridged pod-to-pod traffic skips the kube-proxy iptables
DNAT rules, so every ClusterIP — kube-dns included — is unreachable from pods,
even though the service and its endpoints are perfectly healthy. The amd64 dev
box does not hit this because Docker loads br_netfilter for its bridge networks.
Bind the host kernel modules into the k3s container and, before k3s programs
kube-proxy, load br_netfilter and turn on the bridge-nf-call-iptables and
ip_forward sysctls. Both are no-ops where the module is already present, so the
amd64 path (which passes locally) is unaffected.
Extend the diagnostics with the loaded modules, the bridge/forward sysctls, and
the kube-dns NAT rules, so a ClusterIP-unreachable failure shows whether the
fault is the module, the sysctls, or a missing kube-proxy rule rather than
leaving it to inference.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments