我有一个云运行服务(不接收流量),我将最大实例和最小实例设置为1,以便它始终运行。
部署新实例时,实例计数跳转到3。这是一个问题(如果两个实例同时发出这些请求,我在实例启动时发出的一些请求会命中429)。
为什么CloudRun实例计数超过我的最大值?
我可以确认我的设置是正确的,看看日志,有两个新的实例启动了。
PS: Cloudrun确实有这个消息,这让我觉得我想做的是不可能的。我只是认为这可能是因为停机时间,而不是额外的实例。
使用最大实例数为3或更少的修订可能会遇到意外停机。
您的场景似乎符合文档中描述的场景,其中Cloud Run服务的新部署可能会临时创建额外的实例:
部署新版本时,Cloud Run会逐渐将流量从旧版本迁移到新版本。由于每个修订都设置了最大实例限制,因此在部署后的一段时间内,您可能会暂时超过指定的限制。
可能会创建其他实例来处理从以前的版本到新版本的流量迁移。Cloud Run提供了可以改变版本之间迁移方式的设置。其中一个设置用于立即为新版本上的所有新流量提供服务。您可以测试使用此设置是否有助于减少创建的实例数量。我测试了其中一个提供的示例服务,并创建了多个版本,这些版本不超过1个活动实例。
我读到这是一个云运行问题,你需要10个实例,然后错误消失。
我知道这是golang中的一个错误,不知道如何在两个实例中做到这一点,但对于10个实例,它应该被修复。
https://github.com/ahmetb/cloud-run-faq/issues/54