基于Rancher+Calico+OpenStack的K8s集群大响应场景下连接重置问题求助
基于Rancher+Calico+OpenStack的K8s集群大响应场景下连接重置问题求助
各位好,我遇到了一个挺棘手的问题,想请大家帮忙分析下。先说说我的环境:我们在OpenStack上搭建了基于Rancher的Kubernetes集群,网络插件用的是Calico。
我做了以下部署和测试:
- 部署了一个Spring Config Server(后面简称服务端Pod),并以NodePort类型的Service暴露出去
- 同时部署了一个带
curl工具的Pod(后面简称客户端Pod)用于测试
测试过程中发现了这些异常情况:
- ✅ 当客户端Pod curl服务端Pod所在节点的IP+NodePort时,无论响应大小都能正常返回结果
- ❌ 当客户端Pod curl非服务端Pod所在节点的IP+NodePort时,小响应没问题,但返回1KB+的内容时就会出现
curl(56) Connection reset by peer错误 - ❌ 直接curl Service的Cluster IP+服务端口时,同样是小响应正常,1KB+大响应就报
curl(56)错误 - ✅ 如果客户端和服务端Pod在同一个节点上运行,不管响应大小都完全正常
我自己先做了一些排查,目前的判断:
- 服务端Pod应该没有问题,因为直接访问它所在节点的NodePort能拿到正常的大响应
- 客户端Pod和
curl工具也没问题,小响应场景下各种访问方式都正常 - Service与Pod的关联应该是正常的,毕竟小响应能正常返回
现在实在搞不懂为什么跨节点或者通过Service访问时,大响应就会触发连接重置,有没有遇到过类似问题的朋友?或者能给我一些排查方向的建议吗?
备注:内容来源于stack exchange,提问作者Vinay Taneja
相关产品推荐
相关产品推荐

