首页/开发/CI/CD 与发布速查/Argo Rollouts 渐进式发布
发布策略60 条

Argo Rollouts 渐进式发布

Kubernetes 控制器与 CRD:用 Rollout 资源声明式描述金丝雀与蓝绿流程,支持按步骤调权重、定时暂停、自动分析,并配套 CLI 做晋级与中止。

CI/CD 与发布速查开发更新于 2026-10-13

Argo Rollouts 是什么

Argo Rollouts 是 Kubernetes 的渐进式发布控制器与 CRD:用 Rollout 资源声明式描述金丝雀与蓝绿流程,支持按步骤调权重(setWeight)、定时暂停(pause)、自动分析(analysis),配套 CLI 查询状态、晋级(promote)与中止(abort)。金丝雀在没有流量治理组件时按副本数近似权重;接入流量治理(服务网格、Ingress、Gateway 等)后可按真实比例切流。AnalysisTemplate 对接指标源,分析不达标可自动中止并回滚。它取代 Deployment 管理副本,迁移时要同步调整发布入口与权限。

基本信息

金丝雀steps 组合 setWeight / pause / analysis
蓝绿activeService 与 previewService 服务切换
操作kubectl argo rollouts get / promote / abort
分析AnalysisTemplate 对接指标源,失败自动中止
依赖安装控制器;精确切流依赖流量治理集成

典型使用场景

  • 定时暂停放量:pause 固定时长后自动继续下一档。
  • 指标自动判定:analysis 用错误率与延迟决定晋级或中止。
  • 蓝绿切换:新环境全量就绪后一次切流,回滚只需切回旧服务。
  • 无网格近似灰度:没有流量组件时用副本比例近似权重。
  • 发布可追踪:发布历史与步骤状态都记录在资源里。
  • 迁移过渡:从 Deployment 平滑迁移到 Rollout 并复用模板。

金丝雀步骤

金丝雀步骤
spec:
  strategy:
    canary:
      steps:
      - setWeight: 10
      - pause: {duration: 30m}
      - analysis:
          templates:
          - templateName: success-rate  # 不达标自动中止

策略对比

维度金丝雀蓝绿
流量控制按比例或副本近似两套服务整体切换
回滚速度撤权重或缩副本切回旧服务,较快
资源成本少量额外副本新环境全量复制
适用在线服务日常发布重要版本与快速回滚
Rollout 接管副本管理:替换原 Deployment 后,发布入口、权限与监控都要同步调整。
pause 不设时长就要人工晋级:无人负责时版本会长时间停在中间步骤,交接与超时策略先定好。
没有流量治理时权重按副本近似:副本比例不等于精确流量比例,实例数少了会更粗糙。

易错点

  • 以为无网格也能按百分比精确切流:实际是副本近似,按规模评估误差。
  • 分析模板指标选错:滞后业务指标引发误判中止,先用错误率与延迟类代理指标。
  • 迁移留尾:旧 Deployment 未清理导致双份副本与流量混乱,切换时一并收尾。
  • 中间步骤无人晋级:版本卡在半量状态没人发现;明确责任人与提醒。
  • 低估回滚耗时:副本缩扩需要时间,追求秒级回退就选蓝绿或开关通道。

数据来源与参考

  • Argo Rollouts 文档《Canary》
  • Argo Rollouts 文档《Analysis》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌