news 2026/4/26 11:58:18

7.3 实战演练:监听镜像变更与监听应用定义的双模式工作流打造

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
7.3 实战演练:监听镜像变更与监听应用定义的双模式工作流打造

7.3 实战演练:监听镜像变更与监听应用定义的双模式工作流打造

1. 引言:两种 GitOps 模式之争

在 GitOps 实践中,有两种主流模式:

  1. 监听应用定义(App-of-Apps):Argo CD 监听 Git 中的应用定义变更,自动同步。
  2. 监听镜像变更(Image-based):Argo CD Image Updater 监听镜像仓库的新 Tag,自动更新 Git 并触发部署。

两种模式各有优劣,本节将通过实战对比,帮你选择最适合的场景。


2. 模式一:监听应用定义(传统 GitOps)

2.1 工作流

开发者提交代码 ↓ CI 构建镜像并推送 (myapp:v1.2.3) ↓ 开发者/CI 修改 Git 中的应用定义 (更新 image.tag) ↓ Argo CD 检测到 Git 变更 ↓ 自动同步到集群

2.2 实现步骤

步骤 1:CI 构建镜像

# .github/workflows/ci.yml-name:Build and Pushrun:|docker build -t myapp:${GITHUB_SHA} . docker push myapp:${GITHUB_SHA}

步骤 2:更新应用定义
有两种方式:

方式 A:CI 自动更新(推荐)

-name:Update Deploymentrun:|git clone https://github.com/org/deploy-repo.git cd deploy-repo # 使用 yq 或 sed 更新 values.yaml yq eval '.image.tag = "${GITHUB_SHA}"' -i apps/myapp/overlays/prod/values.yaml git commit -m "Update myapp to ${GITHUB_SHA}" git push

方式 B:开发者手动更新
开发者收到 CI 构建成功的通知后,手动修改 Git 中的应用定义。

步骤 3:Argo CD 自动同步
Argo CD 检测到 Git 变更,自动同步。

2.3 优缺点

优点

  • 完全符合 GitOps 原则(Git 是唯一事实来源)
  • 变更可审计(所有部署都有 Git 提交记录)
  • 支持手动审批(PR Review)

缺点

  • 需要 CI 系统有 Git 写权限(安全风险)
  • 流程稍显复杂(需要两步:构建 + 更新 Git)

3. 模式二:监听镜像变更(Image-based GitOps)

3.1 工作流

开发者提交代码 ↓ CI 构建镜像并推送 (myapp:v1.2.3) ↓ Argo CD Image Updater 检测到新镜像 ↓ 自动更新 Git 中的应用定义 ↓ Argo CD 检测到 Git 变更 ↓ 自动同步到集群

3.2 实现步骤

步骤 1:安装 Argo CD Image Updater

kubectl apply -n a
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 22:29:50

【Java单例模式终极指南】:20年架构师亲授7种实现方式的性能、线程安全与反序列化陷阱全解析

第一章:单例模式的核心原理与应用场景 单例模式是一种创建型设计模式,确保一个类在整个程序生命周期中仅存在唯一实例,并提供全局访问点。其核心在于控制实例化过程——通过私有化构造函数、静态私有实例变量以及公有静态获取方法三者协同实现…

作者头像 李华
网站建设 2026/4/22 8:19:56

【资深架构师经验分享】:生产环境gc模块调优的6大黄金法则

第一章:Python垃圾回收机制概述Python 的内存管理机制在后台自动处理对象的创建与销毁,其中垃圾回收(Garbage Collection, GC)是核心组成部分。它通过引用计数、分代回收和循环检测三种策略协同工作,确保程序运行过程中…

作者头像 李华
网站建设 2026/4/22 6:57:35

为什么90%的人都写不对提取链接的正则?专家级避坑指南来了

第一章:为什么90%的人都写不对提取链接的正则?专家级避坑指南来了 在处理网页内容或日志分析时,提取URL是一个高频需求。然而,绝大多数人编写的正则表达式在实际应用中都会漏掉某些合法链接,甚至匹配到错误的内容。问题…

作者头像 李华
网站建设 2026/4/23 13:06:22

C#进阶疗法 -- 拦截器

代码拦截器入门指南:使用 Castle.DynamicProxy 实现方法拦截 什么是代码拦截器? 代码拦截器是一种设计模式,允许我们在不修改原有代码的情况下,在方法执行前后插入自定义逻辑。这种技术在很多场景下非常有用,属于aop编…

作者头像 李华
网站建设 2026/4/23 9:34:06

C#进阶疗法 -- 过滤器

ASP.NET Core 代码过滤器入门指南:实现统一处理 什么是代码过滤器? 代码过滤器是 ASP.NET Core 中的一种组件,允许我们在请求处理管道的不同阶段执行自定义逻辑。它们提供了一种声明式的方式来处理横切关注点(cross-cutting conce…

作者头像 李华
网站建设 2026/4/23 10:22:26

2026必备!专科生论文痛点TOP10 AI论文网站测评

2026必备!专科生论文痛点TOP10 AI论文网站测评 2026年专科生论文写作工具深度测评 随着人工智能技术的不断进步,AI论文辅助工具已成为众多专科生提升写作效率、优化内容质量的重要帮手。然而,面对市场上琳琅满目的平台,如何选择…

作者头像 李华