我有一个托管在 GKE 上的应用程序,在许多任务中,它向客户端提供了一个 zip 文件。这些 zip 文件是通过谷歌云存储上的许多单独文件动态构建的。
我面临的问题是,当这些 zip 变得特别大时,连接会随机失败(介于 1.4GB 到 2.5GB 之间)。时间似乎也没有任何规律——它可能发生在 2-8 分钟之间。
AFAIK,负载平衡器和我的应用程序之间的连接断开连接。是否已知 GKE 入口(负载均衡器)会关闭长/大连接?
GKE 设置:
- HTTP(S) 负载平衡器入口
- NodePort 后端服务
- 部署(我的应用程序)
更多细节/调试步骤:
- 我无法在本地复制它(没有 kubernetes)。
- 负载均衡器记录
statusDetails: "backend_connection_closed_after_partial_response_sent"
,而响应具有 200 状态代码。对此的谷歌没有任何帮助。 - 使用k8s port-forward直接访问pod并下载成功
- 我的应用程序记录了请求被取消(由请求者)
- 我可以验证所有文件都没有损坏(可以直接从存储中下载所有文件)