ERR_CONNECTION_RESET 来自 EKS 节点

ERR_CONNECTION_RESET from EKS nodes

我有 EC2 服务器 运行 我现有的应用程序。 EC2 实例位于私有子网上,ELB 是在 public 子网上创建的,可以访问特定的 VPN IP。因此,每当我使用 VPN 时,我都能够访问我的应用程序,如果我在该 VPN IP 之外,那么我就无法访问该应用程序。

现在我已经创建了 EKS 集群,我正在使用 kubectl 和应用程序的 docker 图像部署我的应用程序。奇怪的是,只要我不在 VPN 上(我调整了安全组以允许来自所有 IP 的所有流量),应用程序就可以正常工作,每当我在 VPN 上时,我都会在 chrome 中收到 "ERR_CONNECTION_RESET" 并且 curl 显示 -从服务器收到空响应。

到目前为止,我已经尝试了以下方法。由于我对 EKS 比较陌生,所以我找不到太多。 1. 应用相同的安全组 - 未解析 2. 检查所有 pods 的日志 - 我从 "kubectl get po --all-namespaces" 收到的 pods - 没有问题出现 3. 检查 /var/log/messages 4.尝试更改应用程序端口 5. kubectl get 事件没有显示任何关于服务器发送回空响应的原因。 6. 尝试通过 SSH 连接到节点并尝试卷曲 localhost:30080 并且它工作正常,但是当尝试从我的机​​器(在 VPN 上)卷曲时,它失败并返回空响应。

请再次注意,当我在 VPN 之外时,应用程序运行完全正常。此外,我的旧应用程序(在 EC2 上)在 VPN 上运行良好。

提前致谢!

最后发现问题出在企业 VPN 上,它阻止了 80 和 443 以外的所有端口。当我创建服务时,我想让 ELB 暴露端口 5000。所以我在想 elb-host: 5000 将指向 30080 的开发服务节点端口。当我不在 VPN 上时,这非常有效。但是当我使用 VPN 连接该站点时,公司流量阻塞了 ELB 上的端口 5000。我将端口更改为 80 后,它开始正常工作了。

在使用 nginx 时,它使用端口 80 而不是我预期的端口 5000 创建 ELB。我没有注意到端口更改,并认为这是由于 IP 阻塞造成的。