环境说明
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 |  |
查看calico-node组件日志报错:
- 主节点calico-node报错无法和工作节点172.16.100.10建立连接
- 从报错无法和主节点封装IP 172.16.2.169建立连接
故障处理
通过calico-node报错日志可以发现 主节点疑似把虚拟网卡当做了自己的主网卡,来与从节点通信
结果自然是互相找不到对方,从而引起集群状态异常
添加calico-node环境变量
1 | kubectl edit daemonset -n kube-system calico-node |