K8s 网络插件 Calico 报错:Number of node(s) with BGP peering established = 0

问题现象

calico 对应的 Pod 启动失败,报错:

Number of node(s) with BGP peering established = 0

问题分析

Calico 提供了 IP 自动检测的方法,默认是使用第一个有效网卡上的第一个有效的 IP 地址:

IP_AUTODETECTION_METHOD=first-found

节点上应该是出现了有问题的网卡,可以使用以下命令查看:

ip link | grep br

问题原因

Calico 选择了有问题的网卡,导致 Pod 不能启动。

解决方案

有两种方法:

方法一:修改 IP 自动检测方法

Calico 部署 yaml 中,在 spec.containers.env 下添加以下两行:

            - name: IP_AUTODETECTION_METHOD
              value: "interface=ens.*"  # ens 根据实际网卡开头配置

CentOS 7 以后的系统,由于 systemd 版本升级,网卡命名模式已经由 ethX 更改为 ensX。

方法二:删除有问题的网卡(推荐)

指定网卡名称(br 开头的问题网卡)删除:

ifconfig br-xd3829 down

参考资料

在Kubernetes中正确地安装Calico
K8S集群Calico网络组件报错BIRD is not ready: BGP not established with
Calico -Calico问题排障汇总
k8s网络之Calico网络
网卡不叫eth0,而叫ens33、ens160、eno1 or enp0s*?
Predictable Network Interface Names

posted @ 2022-09-25 13:59  ageovb  阅读(1009)  评论(0编辑  收藏  举报