咨询:Cloud Run部署时如何避免运行中应用的域名失效?
解决Cloud Run部署替换时域名短暂失效的问题
核心是通过多版本流量管理实现无停机部署,避免直接替换导致的服务中断,具体操作如下:
部署新版本时保留旧版本
部署新镜像时指定版本标签,不要直接覆盖现有服务的默认版本:gcloud run deploy your-service-name --image gcr.io/your-project/new-image:v2 --tag v2执行后旧版本(比如之前的v1)会继续运行,新版本以独立实例存在,不会立刻接管流量。
按需调整流量分配
确认新版本运行正常后,再手动切换流量:- 全量切换(蓝绿部署模式):
gcloud run services update-traffic your-service-name --to-tag v2 - 逐步灰度迁移(适合验证新版本稳定性):
# 先让新版本接收10%流量 gcloud run services update-traffic your-service-name --to-tags v1=90,v2=10 # 验证无误后逐步提升比例,直到100%切换到v2 gcloud run services update-traffic your-service-name --to-tags v1=0,v2=100
- 全量切换(蓝绿部署模式):
清理旧版本(可选)
确认新版本稳定运行后,再删除旧版本实例:gcloud run services delete-revisions your-service-name --revision your-service-name-v1-xxxx
如果用Cloud Run控制台操作,进入服务详情页的「流量」标签,可直观添加新版本、调整流量占比,操作逻辑和命令行一致。
这种方式下,旧版本会一直运行直到你手动切换或删除,用户的域名请求始终会被正常处理,不会出现失效情况。
内容的提问来源于stack exchange,提问作者dontknowhy
相关产品推荐
相关产品推荐

