Skip to content

calico/node is not ready

Errors

yaml
Events:
  Type     Reason     Age                     From                          Message
  ----     ------     ----                    ----                          -------
  Warning  Unhealthy  3m18s (x9121 over 25h)  kubelet, instance-smuk9oo0-2  (combined from similar events): Readiness probe failed: 2025-01-09 08:36:13.505 [INFO][21491] confd/health.go 177: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with 192.168.90.6,192.168.90.8,192.168.90.2,192.168.90.5,192.168.90.4,192.168.90.3

CoreDNS is not working on a certain machine because Calico is failing to start on that machine. The reason is that the host machine has the Docker bridge network enabled, and it is necessary to manually specify the network interface for Calico.

Solutions

Specify Calico Network Interface

bash
kubectl -n kube-system set env daemonset/calico-node IP_AUTODETECTION_METHOD=interface=eth0
yaml
spec:
  containers:
  - env:
    - name: IP_AUTODETECTION_METHOD
      value: interface=eth0

Get all network interface

bash
ip a