Skip to main content
通用服务更新可以直接发布,也可以通过灰度发布先验证目标版本。灰度过程中,目标版本和旧版本并行运行,您可以逐步调整流量或副本,观察目标版本表现,再决定全量切换、回滚或清理旧版本。

选择发布方式

同一个服务同时只能存在一个进行中的灰度流程。灰度全量切到目标版本后,仍需要清理旧版本才算结束;清理前可以回滚,清理后不再支持本轮灰度的快速回滚。

直接发布

测试环境或影响可控的已验证变更,可以在服务列表中单击 更新 > 直接发布。提交变更后,等待实例更新和就绪,再验证访问端点、最小请求和必要依赖。 直接发布会更新当前运行版本,不提供灰度期间目标版本与旧版本的并行验证。涉及镜像、资源配置、存储挂载、启动命令、环境变量或其他可能影响线上请求的变更时,优先使用灰度发布。

灰度发布

1. 进入灰度发布页面

在服务列表中单击 更新 > 灰度发布。页面的 版本变更 区域用于配置目标版本相关信息。
发起灰度前,建议记录当前镜像、版本、访问入口、目标副本和业务基线。服务需要处于 运行中,且没有进行中的灰度流程,具体以页面限制为准。

2. 配置目标版本

以下配置会在 灰度发布不可修改 区域展示:网关配置、监控配置、指标配置、实例数 和 定时策略。实例数 和 定时策略 标注为 使用直接发布;需要变更这些配置时,请使用服务页面提供的直接发布方式。

3. 选择灰度策略

两种模式都需要选择容量策略:
  • 先启后停:先启动目标版本实例,再缩减旧版本实例。可以避免过渡期容量下降,但需要额外资源。
  • 先停后启:先释放部分旧版本容量,再启动目标版本实例。适合资源紧张且可以接受过渡期容量下降的场景。
右侧 灰度预览 会显示旧版本和目标版本的流量比例、目标实例数、实例合计以及容量策略。提交前,确认预览中的总实例数和容量策略符合资源预算与业务承载要求。

4. 创建并启动灰度

单击 创建并启动灰度。提交后进入灰度详情,观察目标版本的目标副本、就绪副本、事件、日志、监控和本次变更差异。

观察和推进灰度

每次调整目标后,等待实例就绪并观察错误率、延迟、业务结果和告警,再继续推进。小样本请求的实际比例可能与配置权重有偏差,应结合总体指标判断。

回滚当前灰度和清理旧版本

全量切到目标版本后,目标版本会按当前目标副本承接全部流量,旧版本通常仍会保留一段时间用于快速回滚。此时两侧仍可能占用资源。例如旧版本有 3 个副本、目标版本只有 1 个副本时,执行全量后会由 1 个目标版本副本承接全部流量,旧版本 3 个副本仍保留到清理旧版本为止。
  • 目标版本异常时,确认旧版本容量可承接流量,再使用当前灰度流程提供的回滚操作。
  • 目标版本稳定后,使用页面提供的旧版本清理操作释放旧版本资源。
  • 清理旧版本后,本轮灰度结束,不能再通过当前灰度流程快速回滚。

回滚历史版本

历史版本回滚用于恢复曾经正式生效的服务配置,与撤回当前灰度不是同一操作。
  1. 在服务的版本历史中选择曾经正式生效的版本,核对镜像、启动命令和依赖。
  2. 确认当前没有进行中的灰度流程,并确认资源配额和存储权限仍能满足旧版本配置。
  3. 按页面提示提交回滚,等待实例更新并就绪。
  4. 重新验证访问入口、业务请求和外部依赖。
历史版本回滚只恢复对应版本的服务配置,不恢复数据库或 Volume 中的数据。未正式生效的灰度候选不能作为历史版本回滚点。

常见问题

灰度流程正在管理目标版本和旧版本的流量与副本。为避免直接更新、扩缩容、上下线或入口变更覆盖灰度目标,部分操作会被禁用。需要恢复常规操作时,先完成清理旧版本或回滚结束灰度。
全量发布只把流量切到目标版本,旧版本仍保留用于观察期回退。确认目标版本稳定后,使用页面提供的旧版本清理操作。
先查看灰度详情的告警、目标副本和就绪副本,再查看目标版本事件和实例日志。资源不足时可降低目标版本目标、调整容量策略或回滚。

相关文档