calico bgp 模式启动失败,报错 BIRD is not ready
先说原因,calico 官方的 yaml 没有把
IP_AUTODETECTION_METHOD
这个 IP 检测方法的参数放入calico.yaml
中,calico 会使用第一个找到的network interface
(往往是错误的 interface),导致 calico 把 master 也算进 nodes,于是 master BGP 启动失败,而其他 workers 则启动成功
calico 的报错内容
下面的 ip 我就和谐一下了
Warning Unhealthy 4m33s (x34673 over 4d) kubelet (combined from similar events): Readiness probe failed: 2024-04-07 02:40:13.153 [INFO][31446] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with 172.17.xxx.xxx,172.17.xxx.xxx
查看路由
calico-node-xxxxx 替换成失败的 calico pod 名字
k exec -it -n kube-system calico-node-xxxxx -- grep 'router id' /etc/calico/confd/config/bird.cfg
返回下面的 ip 说明路由有问题,正常的路由,是本机的 ip 地址
router id 172.19.0.1
修改 calico yaml 文件
eth0 改成自己的网卡名称
- name: IP_AUTODETECTION_METHOD
value: "interface=eth0"
确认是否有下面的内容
- name: CLUSTER_TYPE
value: "k8s,bgp"
重新 apply calico 的 yaml 文件
分类:
Kubernetes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2022-07-26 CentOS 环境下部署 vsftpd