Fix Calico Node Not Ready: BGP Not Established Error in Kubernetes
This guide explains why a Calico pod shows "BIRD is not ready: BGP not established" in a Kubernetes cluster, identifies the missing node interface detection as the root cause, and provides step‑by‑step instructions to adjust the IP autodetection method and restore pod health.
The problem appears when accessing the Kubernetes dashboard after a Calico pod is recreated, showing the error
calico/node is not ready: BIRD is not ready: BGP not established with 172.16.0.20,172.16.0.30. The pod remains in 0/1 status and cannot establish BGP peering.
Root Cause
Calico fails to detect the actual network interface of the node, so it registers an incorrect nodeIP. This prevents BGP sessions from being established between nodes.
Solution
Modify the Calico network plugin’s IP autodetection method in the Calico yaml configuration:
Change the IP_AUTODETECTION_METHOD value from the default first-found to either can-reach or interface=eth1 (replace eth1 with the actual interface name).
Example snippet to add to calico.yaml:
# Modify calico.yaml
- name: IP_AUTODETECTION_METHOD
value: "interface=eth1"
- name: CLUSTER_TYPE
value: "k8s,bgp"
- name: IP
value: "autodetect"
- name: CALICO_IPV4POOL_IPIP
value: "Always"
- name: CALICO_IPV4POOL_VXLAN
value: "Never"After editing, apply the configuration:
kubectl apply -f calico.yamlVerification
Run kubectl get pod -n kube-system to confirm the Calico controller and node pods are Running with 1/1 ready status. Access to cluster resources should be restored.
Final pod list example:
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-578894d4cd-rsgqd 1/1 Running 0 115d
calico-node-6ktn4 1/1 Running 0 26m
calico-node-8k5z8 1/1 Running 0 26m
calico-node-g87hc 1/1 Running 0 1mWith the corrected autodetection method, the Calico nodes establish BGP peering, and the Kubernetes dashboard and other resources become reachable again.
Full-Stack DevOps & Kubernetes
Focused on sharing DevOps, Kubernetes, Linux, Docker, Istio, microservices, Spring Cloud, Python, Go, databases, Nginx, Tomcat, cloud computing, and related technologies.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
