[警告][66] felix/health.go 154:健康:Kubernetes calico 节点尚未准备好

[警告][66] felix/health.go 154:健康:Kubernetes calico 节点尚未准备好

今天我发现我的 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 社区

相关内容