Akemi

新增虚拟网卡导致的calico组件报错

2025/07/23

环境说明

k8s v1.28 单主单从
主节点IP 172.16.100.11
从节点IP 172.16.100.10
ubuntu20.04
calico v3.25
pod网段默认192.168.0.0/16
虚拟网卡网段172.16.2.0/23

蒲公英就是一个点对点的vpn软件,和向日葵是同为贝锐的产品,专门用来异地组网的,客户需要远程访问服务做演示

故障现象与排查

客户在k8s主节点成功安装了蒲公英后,获取到了虚拟IP 172.16.2.169

尝试访问集群服务时,发现主节点的服务通过NodePort暴露的端口无法访问
通过ss -tunlp | grep 300xx 查看主节点暴露端口情况,发现全都没有暴露

主节点与从节点通信正常,且主节点与蒲公英远程节点通信正常

通过kubectl -n kube-system get pods,发现k8s的calico组件运行Unhealthy

1
![](https://ws-blog-img.oss-cn-hangzhou.aliyuncs.com/wangsheng/20250723192236590.png)

查看calico-node组件日志报错:

  • 主节点calico-node报错无法和工作节点172.16.100.10建立连接
  • 从报错无法和主节点封装IP 172.16.2.169建立连接


故障处理

通过calico-node报错日志可以发现 主节点疑似把虚拟网卡当做了自己的主网卡,来与从节点通信

结果自然是互相找不到对方,从而引起集群状态异常

添加calico-node环境变量

1
2
kubectl edit daemonset -n kube-system calico-node
新增一个变量,指定使用网卡为实际物理网卡

CATALOG
  1. 1. 故障现象与排查
  2. 2. 故障处理