如何让 Cloud 运行 处理多个同时部署?
How to get Cloud Run to handle multiple simultaneous deployments?
我有一个包含 4 个组件的项目,每个组件都在 Google 云 运行 上设置了托管,分别部署用于测试和生产。我还使用 Google Cloud Build 来处理组件的构建和部署。
由于缺少来自源系统的良好 webhook 事件,我目前不得不在每次有新更改时触发项目中所有组件的重建。在项目中,这意味着要构建和部署 8 个不同的图像,因为测试和生产也使用不同的构建时设置。
我已经设法优化 Cloud Build 以很好地处理 8 个并发构建,但它们都大约在同一时间完成,然后所有 8 个都被推送到 Cloud 运行。 Cloud 运行 似乎常常不喜欢这样,并开始向我抛出一些我无法解决的错误。
首先,更严重的是,8 次部署中通常有 4-6 次按预期进行,而其余的要么明显延迟,要么就失败了,通常前几个部署顺利,然后几个有很大的延迟,最后的 1-2 失败了。这似乎是由于该区域中某些 "reconciliation request quota" 耗尽造成的(在本例中为 europe-north1
),因为这是我在云 运行 服务视图顶部看到的错误:
此外,最令人恼火的是,云 运行 仪表板本身似乎无法处理部署的 8 个服务,因为只是坐在仪表板视图上定期列出服务会给我带来另一个与某些读取配额相关的错误:
我尝试通过他们推荐的 "Send feedback" 按钮联系 Google,但在 ~1wk+ 内没有收到回复(谁知道我什么时候发送的,因为他们似乎没有确认收到) .
我可以尝试改善这种情况的一个选择是在不同区域部署 "testing" 和 "production" 变体,但这不是最佳选择,看起来这是一些关于限制的简单配置。还有其他选择供我考虑吗?或者我应该尝试在这些上设置一些同步,而不是所有的部署都被一次触发?
在这种情况下,优化一次构建和部署所有组件的需求并不是一个真正的选择,因为它们也有一些共享代码,当这种情况发生变化时,仍然有必要支持这一点。
这是 Cloud 运行 的问题。开发人员应该能够并行部署许多服务。
错误应该会在几天或几周内修复。
[更新] Bug 现在应该已修复。
如果要并行部署,请确保使用 --async
标志:gcloud run deploy $SERVICE --image --async
我有一个包含 4 个组件的项目,每个组件都在 Google 云 运行 上设置了托管,分别部署用于测试和生产。我还使用 Google Cloud Build 来处理组件的构建和部署。
由于缺少来自源系统的良好 webhook 事件,我目前不得不在每次有新更改时触发项目中所有组件的重建。在项目中,这意味着要构建和部署 8 个不同的图像,因为测试和生产也使用不同的构建时设置。
我已经设法优化 Cloud Build 以很好地处理 8 个并发构建,但它们都大约在同一时间完成,然后所有 8 个都被推送到 Cloud 运行。 Cloud 运行 似乎常常不喜欢这样,并开始向我抛出一些我无法解决的错误。
首先,更严重的是,8 次部署中通常有 4-6 次按预期进行,而其余的要么明显延迟,要么就失败了,通常前几个部署顺利,然后几个有很大的延迟,最后的 1-2 失败了。这似乎是由于该区域中某些 "reconciliation request quota" 耗尽造成的(在本例中为 europe-north1
),因为这是我在云 运行 服务视图顶部看到的错误:
此外,最令人恼火的是,云 运行 仪表板本身似乎无法处理部署的 8 个服务,因为只是坐在仪表板视图上定期列出服务会给我带来另一个与某些读取配额相关的错误:
我尝试通过他们推荐的 "Send feedback" 按钮联系 Google,但在 ~1wk+ 内没有收到回复(谁知道我什么时候发送的,因为他们似乎没有确认收到) .
我可以尝试改善这种情况的一个选择是在不同区域部署 "testing" 和 "production" 变体,但这不是最佳选择,看起来这是一些关于限制的简单配置。还有其他选择供我考虑吗?或者我应该尝试在这些上设置一些同步,而不是所有的部署都被一次触发?
在这种情况下,优化一次构建和部署所有组件的需求并不是一个真正的选择,因为它们也有一些共享代码,当这种情况发生变化时,仍然有必要支持这一点。
这是 Cloud 运行 的问题。开发人员应该能够并行部署许多服务。
错误应该会在几天或几周内修复。
[更新] Bug 现在应该已修复。
如果要并行部署,请确保使用 --async
标志:gcloud run deploy $SERVICE --image --async