news 2026/5/12 15:27:16

Jenkins 已死?GitOps 才是未来!基于 ArgoCD + Kustomize 构建“秒级发布”流水线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Jenkins 已死?GitOps 才是未来!基于 ArgoCD + Kustomize 构建“秒级发布”流水线

⚰️ 前言:受够了 Jenkins 的“插件地狱”

你是否有过这样的经历:

  • 为了升级一个 Jenkins 插件,导致整个流水线崩了,甚至 Jenkins 起不来了。
  • 运维在 Jenkins 上配了一堆 Shell 脚本,只有他自己看得懂,离职后没人敢动。
  • 生产环境的配置和 Git 仓库里的代码不一样,出现了神秘的**“配置漂移”**。

在虚拟机时代,Jenkins 是当之无愧的 CI/CD 霸主。但在Kubernetes 云原生时代,继续用 Jenkins 做部署(CD),简直就是开着拖拉机上高速。

今天,我要大胆说一句:对于 K8s 部署,Jenkins 该退休了。
未来属于GitOps。我们将用ArgoCD + Kustomize搭建一套现代化的发布系统,实现**“代码一提交,集群秒更新”**。


⚔️ 核心对决:Push 模式 vs Pull 模式

为什么说 Jenkins 落后了?
Jenkins 采用的是Push 模式:CI 服务器需要持有 K8s 集群的kubeconfig(上帝权限),一旦 CI 服务器被黑,你的生产环境就完了。

ArgoCD 采用的是Pull 模式 (GitOps)
ArgoCD 作为 Agent 部署在 K8s 集群内部。它不需要上帝权限,它只做一件事:盯着 Git 仓库

  • Git 仓库里描述了“期望状态”。
  • K8s 集群里运行的是“实际状态”。
  • 一旦两者不一致,ArgoCD 立即把集群同步 (Sync)成 Git 里的样子。

架构对比图:

现代ArgoCD_Pull模式
传统Jenkins_Push模式
代码提交
触发
1.构建镜像
2.kubectl apply
代码提交
触发
1.构建镜像
2.更新Manifest
3.监听变化并拉取
4.同步状态
Git 代码库
开发人员
GitHub Actions / Jenkins CI
镜像仓库
Git 配置库
ArgoCD 控制器
生产集群
Git 代码库
开发人员
Jenkins CI/CD
镜像仓库
生产集群

GitOps 的降维打击:

  1. 安全性:CI 只需要修改 Git 文件,不需要 K8s 权限。
  2. 可回滚:Git 回退一个 Commit,集群自动回滚。Git 就是你的时光机。
  3. 防漂移:有人偷偷用kubectl改了线上配置?ArgoCD 会立刻发现并把它改回来!

🛠️ 实战环节:ArgoCD + Kustomize 落地

很多同学用了 ArgoCD 还在写一大堆重复的 YAML。这时候就需要Kustomize出场了。
它通过Base (基准) + Overlay (覆盖)的方式,让你一套配置复用到开发、测试、生产环境。

1. 项目结构设计

告别 Helm 的复杂模板,Kustomize 的结构清晰可见:

deploy/ ├── base/ # 通用配置 │ ├── deployment.yaml │ ├── service.yaml │ └── kustomization.yaml └── overlays/ # 环境差异化配置 ├── dev/ │ ├── kustomization.yaml │ └── patch-replicas.yaml (开发环境 1副本) └── prod/ ├── kustomization.yaml └── patch-replicas.yaml (生产环境 3副本)
2. 定义 Application (ArgoCD 的核心)

我们不需要去 Web 页面点点点,直接写一个 YAML 文件告诉 ArgoCD 要管哪个项目。

apiVersion:argoproj.io/v1alpha1kind:Applicationmetadata:name:my-app-prodnamespace:argocdspec:project:defaultsource:repoURL:'https://github.com/my/repo.git'targetRevision:HEADpath:deploy/overlays/prod# 指向生产环境配置destination:server:'https://kubernetes.default.svc'namespace:my-app# 关键:开启自动同步和自愈syncPolicy:automated:prune:true# Git里删了文件,集群也自动删selfHeal:true# 防止有人手动改集群
3. 实现“秒级发布”

所谓的秒级发布,其实就是修改镜像 Tag的过程。

我们可以在 CI 流水线(比如 GitHub Actions 或 纯构建用的 Jenkins)的最后一步,运行以下命令:

# 进入配置库cddeploy/overlays/prod# 使用 kustomize 修改镜像 Tagkustomize editsetimage my-app=my-registry/my-app:v2.0# 提交到 Gitgitcommit -am"Update image to v2.0"gitpush

就在你git push成功的那一秒,ArgoCD 检测到了变化,立即驱动 K8s 进行滚动更新。
没有复杂的脚本,没有 SSH 连接,一切都是那么丝滑。


💣 灵魂拷问:Jenkins 真的没用了吗?

我不做标题党,客观看待:

  • CI (持续集成):Jenkins 依然很强。编译 Java、打 Docker 镜像、跑单元测试,Jenkins / GitLab CI 依然是主力。
  • CD (持续部署):请把这块地盘让给 ArgoCD。让专业的人做专业的事。

最佳实践公式:

Jenkins (负责打包) + Git (作为源头) + ArgoCD (负责交付)


📝 总结

从脚本为王,到基础设施即代码 (IaC),再到现在的 GitOps。
技术的演进方向永远是:更声明式、更自动化、更安全。

如果你还在维护那些几百行的 Jenkins Pipeline 脚本,每天提心吊胆怕发布失败,不妨试试 ArgoCD。
相信我,一旦你体验过**“提交代码即上线”**的快感,你就再也回不去 Jenkins 的时代了。

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

VinylMusicPlayer 安卓音乐播放器终极使用指南

VinylMusicPlayer 安卓音乐播放器终极使用指南 【免费下载链接】VinylMusicPlayer A material designed music player for Android 项目地址: https://gitcode.com/gh_mirrors/vi/VinylMusicPlayer 想要在安卓手机上享受高品质的音乐播放体验吗?VinylMusicPl…

作者头像 李华
网站建设 2026/5/11 0:30:41

poemyang单线程如何撑起百万连接?I/O多路复用:现代网络架构的基石

O多路复用(I/O Multiplexing)是一种允许单个线程同时监视多个文件描述符的I/O模型。其核心价值在于,它将应用程序从低效的I/O等待中解放出来,实现了“一次等待,响应多个事件”的高效并发模式。要理解其优势&#xff0c…

作者头像 李华
网站建设 2026/5/9 1:33:26

【收藏】为什么一定要做 Agent 智能体?大模型开发者必学的核心方向

在大模型技术飞速迭代的当下,Agent 智能体已然成为行业内的热门赛道,也是不少开发者和技术爱好者进阶的关键方向。但很多人对 Agent 的认知还停留在 “大模型调用 API” 的浅层阶段,今天我们就来深度拆解 Agent 的定义、核心优势、现存挑战&a…

作者头像 李华
网站建设 2026/5/11 0:05:09

【值得收藏】RAG架构演进详解:从Naive RAG到Agentic RAG的技术突破

本文系统梳理了RAG架构从基础到智能化的演进历程,对比分析了Naive RAG、Advanced RAG、Modular RAG和Agentic RAG四代架构的核心特点与技术突破。揭示了RAG技术如何通过模块化设计、智能体协同等创新解决知识更新、语义对齐和复杂任务处理等关键问题,为L…

作者头像 李华
网站建设 2026/5/10 2:52:07

MiGPT终极教程:如何让小爱音箱变身智能AI语音助手

MiGPT终极教程:如何让小爱音箱变身智能AI语音助手 【免费下载链接】mi-gpt 🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。 项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt 还在为小爱音箱的机械回答感到失望…

作者头像 李华