今天我发现我的 pod 无法访问互联网,然后我跟踪 calico 节点并发现如下日志:
2023-10-03 13:45:41.724 [WARNING][66] felix/health.go 188: Reporter is not ready. name="int_dataplane"
2023-10-03 13:45:41.725 [WARNING][66] felix/health.go 188: Reporter is not ready. name="async_calc_graph"
2023-10-03 13:45:41.725 [WARNING][66] felix/health.go 154: Health: not ready
2023-10-03 13:45:49.150 [WARNING][66] felix/health.go 188: Reporter is not ready. name="int_dataplane"
2023-10-03 13:45:49.150 [WARNING][66] felix/health.go 188: Reporter is not ready. name="async_calc_graph"
2023-10-03 13:45:49.256 [WARNING][66] felix/health.go 188: Reporter is not ready. name="int_dataplane"
2023-10-03 13:45:49.256 [WARNING][66] felix/health.go 188: Reporter is not ready. name="async_calc_graph"
2023-10-03 13:45:49.256 [WARNING][66] felix/health.go 154: Health: not ready
2023-10-03 13:45:59.150 [WARNING][66] felix/health.go 188: Reporter is not ready. name="int_dataplane"
2023-10-03 13:45:59.150 [WARNING][66] felix/health.go 188: Reporter is not ready. name="async_calc_graph"
2023-10-03 13:45:59.277 [WARNING][66] felix/health.go 188: Reporter is not ready. name="int_dataplane"
2023-10-03 13:45:59.277 [WARNING][66] felix/health.go 188: Reporter is not ready. name="async_calc_graph"
2023-10-03 13:45:59.277 [WARNING][66] felix/health.go 154: Health: not ready
2023-10-03 13:46:09.149 [WARNING][66] felix/health.go 188: Reporter is not ready. name="int_dataplane"
2023-10-03 13:46:09.149 [WARNING][66] felix/health.go 188: Reporter is not ready. name="async_calc_graph"
2023-10-03 13:46:09.257 [WARNING][66] felix/health.go 188: Reporter is not ready. name="int_dataplane"
2023-10-03 13:46:09.257 [WARNING][66] felix/health.go 188: Reporter is not ready. name="async_calc_graph"
2023-10-03 13:46:09.257 [WARNING][66] felix/health.go 154: Health: not ready
2023-10-03 13:46:19.148 [WARNING][66] felix/health.go 188: Reporter is not ready. name="async_calc_graph"
2023-10-03 13:46:19.148 [WARNING][66] felix/health.go 188: Reporter is not ready. name="int_dataplane"
2023-10-03 13:46:19.263 [WARNING][66] felix/health.go 188: Reporter is not ready. name="int_dataplane"
2023-10-03 13:46:19.263 [WARNING][66] felix/health.go 188: Reporter is not ready. name="async_calc_graph"
2023-10-03 13:46:19.263 [WARNING][66] felix/health.go 154: Health: not ready
我已经从互联网上搜索过,发现有人说可能是 IP 检测失败的问题,所以我尝试调整 IP 检测策略IP_AUTODETECTION_METHOD
如下:
- name: CALICO_IPV4POOL_NODE_SELECTOR
value: all()
- name: CALICO_NETWORKING_BACKEND
value: bird
- name: IP
value: autodetect
- name: IP_AUTODETECTION_METHOD
value: "interface=eth0"
仍然没有修复此问题。我是否遗漏了什么?我应该怎么做才能修复此问题?Kubernetes 集群版本是 1.26。calico 版本是image: docker.io/calico/cni:v3.20.0
。主机 ifconfig 命令的部分如下所示:
califb5dc430c6b: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1480
inet6 fe80::ecee:eeff:feee:eeee prefixlen 64 scopeid 0x20<link>
ether ee:ee:ee:ee:ee:ee txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.29.217.209 netmask 255.255.240.0 broadcast 172.29.223.255
inet6 fe80::216:3eff:fe29:1d88 prefixlen 64 scopeid 0x20<link>
ether 00:16:3e:29:1d:88 txqueuelen 1000 (Ethernet)
RX packets 19770425848 bytes 16068143590245 (14.6 TiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11665292280 bytes 9569887384561 (8.7 TiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 15831034437 bytes 3182325844612 (2.8 TiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15831034437 bytes 3182325844612 (2.8 TiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tunl0: flags=193<UP,RUNNING,NOARP> mtu 1480
inet 10.97.196.192 netmask 255.255.255.255
tunnel txqueuelen 1000 (IPIP Tunnel)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
我也尝试过进行这样的调整:
- name: IP_AUTODETECTION_METHOD
value: can-reach=223.5.5.5
仍然无法解决这个问题。
答案1
我发现github 上的这个问题报告的错误和您报告的错误相同。查看该主题中的回复后,对其他人有效的修复方法是:
- 确保你使用的是最新版本的 Calico
- 升级你的 k8s 平台(docker、kind 等)
- 检查你的 pod/节点是否有足够的 CPU
如果这些建议对你不起作用,你可以在Project Calico Slack 社区。