You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudRun重新部署时实例数激增原因及滚动更新控制咨询

关于Cloud Run部署期间实例激增的问题及解决方案

一、部署期间实例数大幅激增的原因

结合你低CPU、低流量的场景,主要有以下几种核心原因:

  • 最小实例数配置触发:如果你的服务设置了大于0的最小实例数(Min Instances),部署新版本时,Cloud Run会先拉起对应数量的新实例满足最小实例要求,同时旧的最小实例会持续运行直到新实例就绪,直接造成实例数翻倍。比如设置5个最小实例,部署时会先启动5个新实例,叠加旧的5个,总实例数会达到10个。
  • 默认滚动更新策略特性:Cloud Run默认滚动更新规则为maxSurge=所有实例、maxUnavailable=0,即优先启动足够的新实例承接全部流量,完全不允许旧实例提前下线。这种策略下,旧实例未关闭前新实例会持续拉起,最终出现新旧实例叠加的情况。
  • 实例启动/健康检查延迟:如果应用启动较慢,或健康检查(就绪/存活检查)超时时间设置过长,旧实例会一直被保留以保障服务可用,新实例在启动过程中就会造成实例数短期激增。

二、如何控制部署期间的滚动更新行为

你可以通过配置maxSurge和maxUnavailable参数调整滚动更新节奏,具体操作方式如下:

使用gcloud命令部署时配置

gcloud run deploy SERVICE_NAME \
  --image IMAGE_URL \
  --max-surge MAX_SURGE \
  --max-unavailable MAX_UNAVAILABLE
  • --max-surge:允许部署期间额外启动的实例数,支持具体数字(如2)或百分比(如50%),用于限制新实例启动数量。
  • --max-unavailable:允许部署期间下线的旧实例数,同样支持数字或百分比,比如设为1表示可先下线1个旧实例,再启动1个新实例,逐步完成替换。

通过Google Cloud控制台配置

部署Cloud Run服务时,进入部署设置的滚动更新选项,直接设置“最大浪涌”和“最大不可用”的数值即可。

低流量场景示例配置

如果你的服务平时仅1-2个实例,可使用以下配置平衡可用性与实例数量:

gcloud run deploy my-service \
  --image gcr.io/my-project/my-image \
  --max-surge 1 \
  --max-unavailable 0

该配置会限制部署期间最多额外启动1个新实例,旧实例不会提前下线,既保证服务可用,又避免实例数激增。

附相关监控截图

部署期间实例数激增
7天内实例数与CPU利用率趋势
7天内请求速率趋势

内容的提问来源于stack exchange,提问作者Fuyang Liu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:41:40