让你的上线,像
git push一样简单
📘 本文阅读时长:约 9 分钟📊 全文字数:约 1800+ 字
在前面的实验中,已经完成了:
这些解决了一个问题: 👉 系统能不能稳定运行
但我们还缺一个关键能力: ❗ 系统能不能高效交付
开发改代码 → 运维手动构建 → 手动上传 → 手动部署 → 出问题再回滚
这套流程在企业里会带来一堆问题:

CI/CD 不是某个工具,而是一套工程体系:
代码提交 → 自动构建 → 自动测试 → 自动部署 → 自动验证
👉 让“交付系统”这件事,像
git push一样简单
Git(代码)
↓
CI(构建系统)
↓
镜像仓库(Registry)
↓
CD(部署系统)
↓
Kubernetes(运行环境)
开发 git push
↓
CI 系统检测到代码变化
↓
自动构建 Docker 镜像
↓
推送到镜像仓库
↓
CD 更新 Kubernetes Deployment
↓
Pod 滚动更新
↓
服务上线
📌 一句话记住本节CI/CD = 自动化软件交付流水线

解决 “构建问题”。
主要职责:
👉 输出的是:一个可运行的产物(Docker 镜像)
解决 “发布问题”。
主要职责:
👉 输出的是:一个正在运行的服务
项目 | CI | CD |
|---|---|---|
输入 | 代码 | 镜像 |
输出 | 构建产物 | 运行服务 |
关注点 | 构建质量 | 发布稳定性 |
👉 CI 管“打包”,CD 管“上线”,别搞混。

[开发层] Git / 分支策略
[构建层] Jenkins / GitLab CI
[制品层] Docker Registry(Harbor)
[部署层] Kubernetes / ArgoCD
[运行层] 应用服务
[观测层] Prometheus + Alertmanager
层级 | 作用 |
|---|---|
开发层 | 管理代码与版本 |
构建层 | 自动构建与测试 |
制品层 | 存储镜像 |
部署层 | 控制发布 |
运行层 | 提供业务服务 |
观测层 | 监控与告警 |
架构Jenkins → kubectl → Kubernetes
特点
缺点
👉 适合阶段:✅ 当前阶段(必须先掌握)
架构Git → ArgoCD → Kubernetes
核心思想
👉 Git = 最终状态(Single Source of Truth)
特点
👉 适合阶段:🔥 企业级 / 平台化阶段
🤔 小思考
如果公司要求所有变更必须通过 Git 审批才能上线,你应该选 Pipeline 模式还是 GitOps 模式? (答案文末揭晓)

Git(代码)
↓
Jenkins(CI)
↓
Docker(构建镜像)
↓
Harbor(镜像仓库)
↓
kubectl(CD)
↓
Kubernetes(运行)
↓
Prometheus(监控)
↓
Alertmanager(告警)
git push→ 自动触发流水线
不再允许 kubectl手工发布
demo:v1
demo:v2
demo:commit-hash
kubectl rollout undo deployment/demo
之前完成了 Prometheus + Alertmanager,这一步非常关键。
👉 错。Jenkins 只是工具,CI/CD 是体系。
👉 错。企业级关注的是:稳定性、可追溯、自动化。
👉 不建议。没有 Pipeline 基础,很难理解 GitOps 的本质。
👉 CI/CD 的本质,是把“软件交付”变成一条可重复、可观测、可回滚的自动化流水线。
公司要求所有变更必须通过 Git 审批 → 必须选 GitOps 模式(ArgoCD)因为 Pipeline 模式下 Jenkins 直接操作集群,绕过了 Git 审批流程。
文中部分图示来源于互联网,侵删!