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

Argo Rollouts部署失败是否回滚Git变更?Argo CD支持自动回滚吗?

Argo Rollouts与Argo CD回滚问题解答

1. 部署失败时,Argo Rollouts会回滚Git变更吗?

不会。Argo Rollouts和Argo CD都遵循GitOps核心范式——Git仓库是部署状态的唯一可信源。当部署失败时,Argo Rollouts只会将集群内运行的应用实例回滚到之前的可用版本,但不会修改Git仓库里的任何内容(比如你修改的Chart.yaml版本号)。

也就是说,Git仓库里的代码还是你提交的新版本,只是集群实际跑的是旧版本。如果要让Git仓库和集群状态对齐,你得手动回退Git中的版本号提交,Argo CD会自动同步这个回退操作到集群。

2. Argo CD能否自动回滚到旧版本?

Argo CD本身默认没有自动回滚到历史版本的功能,但结合Argo Rollouts的特性或配置健康检查策略,可以实现近似的自动恢复效果:

  • Argo Rollouts 金丝雀/蓝绿部署自动回滚:如果你用Argo Rollouts的金丝雀或蓝绿部署策略,可以配置自动回滚规则。比如在Rollout资源里定义analysis阶段,设置Pod健康状态、请求错误率等阈值,当新版本触发这些故障条件时,Argo Rollouts会自动把流量切回旧版本,同时暂停新版本的部署推进。
  • Argo CD 健康检查与自修复:给Argo CD的Application配置健康检查规则,当应用状态变为Degraded时,开启syncPolicy里的automated.selfHeal,它会尝试重新同步当前Git中的配置,但这不是回滚到旧版本,而是修复当前配置的部署问题。如果要实现真正的自动回滚到历史版本,需要搭配外部工具(比如自定义控制器)监听Argo CD的健康事件,触发Git仓库的回退提交,再由Argo CD同步到集群。

如果想要完全无需手动操作的自动回滚,建议:

  • 在Argo Rollouts的Rollout资源中配置rollbackWindow和analysis规则,让Rollouts检测到故障时自动回滚集群内的实例。
  • 若要同步Git仓库状态,可以写简单脚本或借助GitOps工具链的辅助组件,在Rollouts触发自动回滚后,自动回退Git中的对应提交。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:07:19