【问题标题】:How to debug GCP `backend_response_corrupted` error?如何调试 GCP `backend_response_corrupted` 错误?
【发布时间】:2021-07-10 04:58:04
【问题描述】:

我有一个 Springboot 应用程序作为 kubernetes 部署运行,使用 GCP 提供的默认入口控制器公开为 kubernetes NodePort Service。问题是我在访问服务端点时遇到了 502 错误。云记录报告它是一个backend_response_corrupted 错误。但是,如果我将端口转发到该服务,则不会遇到该问题。我该如何检查导致错误的原因?

任何帮助将不胜感激!

【问题讨论】:

  • 能否提供命令 kubectl describe ep -n your-namespace your-service 的输出

标签: google-cloud-platform google-kubernetes-engine load-balancing kubernetes-ingress


【解决方案1】:

查看此文档:

Troubleshooting load balancing

它包含针对以下情况的一般故障排除步骤:

无法解释的 502 错误
如果在您完成负载平衡器配置后 502 错误持续超过几分钟,则可能是:

没有firewall rule configured to allow health checks
后端的软件没有运行。

要验证运行状况检查流量是否到达您的后端虚拟机,enable health check logging 并搜索成功的日志条目。

无法解释的 502 错误
确保您的后端实例运行良好并支持 HTTP/2 协议。您可以通过使用 HTTP/2 测试与后端实例的连接来验证这一点。确保 VM 使用符合 HTTP/2 规范的密码套件。例如,HTTP/2 不允许某些 TLS 1.2 密码套件。请参阅 TLS 1.2 密码套件黑名单。

验证虚拟机使用 HTTP/2 协议后,请确保您的防火墙设置允许运行状况检查器和负载平衡器通过。

如果防火墙设置没有问题,请确保将负载平衡器配置为与 VM 上的正确端口通信。

希望该指南对您的问题有用。 干杯

【讨论】:

  • 嗨,杰米,感谢您的回复。幸运的是,我能够找出问题是因为直接从另一个 API 调用返回响应。提取响应正文并将其单独发送回对我有用。
猜你喜欢
  • 2021-08-28
  • 1970-01-01
  • 2017-09-20
  • 2013-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
相关资源
最近更新 更多