使用 NAT(和路由器)的 GKE 集群上 pods 的出站连接问题

Issues with outbound connections from pods on GKE cluster with NAT (and router)

我正在尝试调查随机 'Connection reset by peer' 错误或长时间(最多 2 分钟)PDO 连接初始化的问题,但未能找到解决方案。

类似问题:https://kubernetes.io/blog/2019/03/29/kube-proxy-subtleties-debugging-an-intermittent-connection-reset/,但应该在我 运行.

的 kubernetes 版本中修复

GKE 配置详情: GKE 在 1.20.12-gke.1500 版本上 运行,具有 NAT 网络配置和路由器。集群有 2 个节点,路由器有 2 个分配有动态端口分配的静态 IP,每个 VM 的端口范围为 32728-65536 个。

关于 kubernetes:

根据问题的复制,我创建了一个简单的脚本,以循环方式连接到数据库并进行简单的计数查询。我通过在没有遇到任何问题的独立 GCE VM 上测试脚本来消除数据库服务器的问题。当我 运行 集群中任何应用程序 pods 上的脚本时,我收到随机 'Connection reset by peer' 错误。我已经使用 google sql 代理服务或具有相同随机连接问题的直接数据库 IP 测试了该脚本。

如有任何帮助,我们将不胜感激。

更新

https://cloud.google.com/kubernetes-engine/docs/release-notes 我可以看到已经发布了修复程序来解决我可能遇到的问题:“以下 GKE 版本修复了一个已知问题,在该问题中,GKE 节点可能会发生随机 TCP 连接重置使用 Container-Optimized OS 和 Docker (cos)。要解决此问题,请将您的节点升级到以下任一版本:“

我今晚要更新节点,希望这能解决问题。

更新

节点的更新解决了随机连接重置问题。

使用 google 云面板将集群和节点更新到 1.20.15-gke.3400 版本解决了这个问题。