Google cloud run 如何在google cloud run上以编程方式更新流量切换?
我正在尝试通过CI/CD作业将新版本部署到云上运行,并立即开始为新版本提供100%的流量 此服务不面向客户,我们不需要金丝雀部署或流量拆分 目前,该映像是在gitlab ci管道中构建的,并已发布gcr。下一步是执行Google cloud run 如何在google cloud run上以编程方式更新流量切换?,google-cloud-run,Google Cloud Run,我正在尝试通过CI/CD作业将新版本部署到云上运行,并立即开始为新版本提供100%的流量 此服务不面向客户,我们不需要金丝雀部署或流量拆分 目前,该映像是在gitlab ci管道中构建的,并已发布gcr。下一步是执行gcloud run deploy命令。命令运行得很好,我得到了新的修改。然而,0%的流量用于此修订版,我一辈子都不知道如何通过编程来管理它 我在这里阅读了常见问题: 我已经阅读了gcloud run deploy--help的内容 我能找到的唯一相关信息来自常见问题解答: 但是
gcloud run deploy
命令。命令运行得很好,我得到了新的修改。然而,0%的流量用于此修订版,我一辈子都不知道如何通过编程来管理它
- 我在这里阅读了常见问题:
- 我已经阅读了
gcloud run deploy--help的内容
- 如果没有适当的流量拆分(最新版本=100%),则新版本将100%
- 如果存在拆分,
将使新修订版为0%gcloud run deploy
--no traffic
如果要以编程方式拆分流量,我建议您执行以下操作:
最新版本
)gcloud run deploy [...] --no-traffic
gcloud run services update-traffic --to-revisions=LATEST=5 [...]
运行此操作时,新版本将获得5%,其余版本将获得95%git push
es触发部署),最新版本可能会无意中指向错误的版本。斯特伦的建议是:
相反,要使用gcloud run deploy[…]--修订后缀=1234--无流量
,然后gcloud run services update traffic--要使用修订服务-1234=10
您还可以为修订提供友好的名称(“标记”),但目前无法在它们之间分割流量。(#ahmetb todo
)使用该功能,您将能够部署修订版并为其命名,如“候选”
,然后在拆分流量时引用它,而不是复杂的自动生成的修订版名称
或者,您可以通过使用gcloud run services replace
命令部署YAML清单来管理版本之间的通信量。这涉及到理解Knative API是如何工作的。以下是一些可能相关的文档:
- (单击YAML选项卡)
最新版本可能会很危险我建议改用gcloud run deploy[…]--revision suffix=1234--无流量
,然后服务更新流量--到revisions service-1234=10
好主意,我会将此合并到答案中。如何删除现有的“流量拆分”?我曾经使用过GUI的“管理流量”部分,现在每个部署在新版本(如OP)上都默认为0%流量。现在我将在部署脚本中使用update traffic--to revisions=LATEST=100
fix,但最好将服务的状态恢复到以前的状态。这就是恢复100%的方法。
gcloud run services update-traffic --to-revisions=LATEST=5 [...]