docker - 在一个 GCP 项目中来自 Cloud Run 应用的 HTTP 503 错误,但在另一个项目中没有
问题描述
问题
我在 2 个项目上使用相同的容器(类似的资源)——生产和登台。两者都使用云闪现 DNS 设置自定义域,并且位于同一区域。容器构建在完全不同的项目中完成,IAM 用于处理对这些容器的访问。两个项目服务的所有 5 项服务都有 80 次并发和 300 秒超时。
3 天前一切正常,但从昨天开始,几乎所有暂存的云运行服务(谢天谢地)开始随机抛出 503,并且对于大多数请求。有些服务甚至一周都没有部署。相同的容器在生产项目上运行良好,没有问题。
排除原因
- 与 Cloudflare 有任何关系(我尝试了 URL cloud run 给出的 503 问题)
- 任何带有构建或容器的东西(我用 go 尝试了演示 hello world 容器 - 它也有问题)
- 资源:我尝试给它 1 GB ram 和 2 cpus,但问题仍然存在
- 部署问题(部署多个分支 - 不起作用)
- 代码中的问题(只是将流量路由到旧的 2-3 天旧版本,但仍然存在问题)
- 服务级别问题(我使用相同的容器创建了一个全新的服务,它也有问题)
可能的原因
- 云运行或云运行负载均衡器上的东西
- 可能有一些环境变量,但这似乎也不是问题
响应代码
我刚刚对 vegeta(30 秒,10 rps)相同的容器进行了快速检查,用于静态文件路径的暂存和生产,以下是响应:
分期 生产如果有人对此有任何见解,那将有很大帮助。
解决方案
根据您的解释,我无法理解发生了什么。您解释了什么不起作用,但没有指出什么起作用(您的应用程序在本地运行吗?您能够运行 hello world 示例应用程序吗?)
所以我会推荐一些调试技巧。
如果您收到 HTTP 5xx 状态代码,请首先检查您的应用程序的日志。它是否打印任何日志?是否有请求日志?您的应用程序是否具有并部署了“详细”日志记录设置?
尝试
*.run.app
直接访问您的域。如果它不起作用,那么它不是域或 dns 或 cloudflare 问题。尝试调试和/或重新部署您的应用程序。首先部署一些有效的东西。如果*.run.app
域有效,则问题不在 Cloud Run 中。确保您没有在代理模式下使用 Cloudflare(例如,您的 DNS 指向 Cloud Run;而不是 Cloudflare),因为当域位于 Cloudflare 之后时,存在一个关于证书颁发/续订的已知问题。
除此之外,如果重新部署似乎可以解决您的问题,则可以尝试重新部署。很可能某些配置最近变成了两个不同的项目。
推荐阅读
- ruby-on-rails - 如何将 EmberJS 增量集成到 Rails Web 应用程序中?
- javascript - 表单值没有正确清除角度js
- c# - ViewData 返回 null 而不是列表元组
- botframework - 新聊天机器人 - Facebook 频道的 Workplace - Workplace 不支持
- python - 我怎样才能运行一个函数仅 5 分钟?
- python - Kivy 中屏幕文本的分辨率
- python - 在没有 pip 的 virtualenv 中安装 redis 5.x 包
- json - 飞镖中的jsondecode加载问题
- google-api - 在最新的 Google Cloud SDK 291.0.1 中无法通过 REST API 获取 access_token 信息
- r - 在 R studio 中加载 keras 包时出错