客户端与k8s群集之间的连接问题[服务器重置TCP]

时间:2019-06-22 11:07:43

标签: networking kubernetes firewall vpn nginx-ingress

上周,我们已将整个网络基础架构迁移到了新设备。我们还将Fortigate 200D替换为两个新的Palo Alto 850。

我们按照此指南在办公室与Azure网关之间创建了新的IPSec: https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000Cm6WCAS

我们设法通过新的IPSec访问Azure上的所有开发环境,但是在从k8s节点下载文件时遇到了问题。

例如: 我在K8s上托管了TeamCity。当我从TeamCity节点下载工件时,2-3分钟后,我在Chrome中看到“失败-网络错误”,然后下载立即停止-在防火墙上,我看到会话是服务器'tcp-rst-来自服务器”。

我与Palo Alto工程师和Azure工程师一起在Palo Alto和Azure之间对IPSec进行了故障排除,我们在Palo Alto上找不到任何未命中的配置。

我使用IIS在Azure下创建了一个新的Windows实例,并将一个大文件上传到服务器,以便可以从k8s和普通实例中下载同时性。

因此,两分钟后,我从k8s URL上的服务器获得了TCP-rst-,但直接服务器仍在下载,没有掉线。

此外,我们没有看到任何下落。 因此,我们在整个流程中所做的唯一更改就是将防火墙更改为其他供应商。

有人猜吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

恐怕您的测试可能不太可靠(如果怀疑网络相关问题,例如NIC),因为您不确定新创建的VM和AKS群集是否在同一虚拟网络中。

代替创建新的VM,重新使用现有的Worker节点,并通过NodePort服务公开TeamCity。如果您的AKS环境中存在代理服务器,则可以消除客户端和Web服务器(IIS)之间的任何代理服务器。

值得添加有关AKS群集设置的任何详细信息(正在使用Azure CNI?),最主要的是如何立即通过NGINX入口控制器公开TeamCity应用程序,或直接在POD的单个IP地址上访问它?