一次完整的 CI/CD 是什么样的
写下这篇文章时,代码刚刚经过五个环节:
- Gitea 收到
git push - Jenkins 拉取代码,创建临时构建 Pod
- Kaniko 在 Pod 里构建 Docker 镜像(不需要 Docker 守护进程)
- Harbor 存下
apps/blog:build-6 - Kubernetes 用新镜像滚动重启,跑通健康检查
关键点
| 环节 | 用到的工具 | 备注 |
|---|---|---|
| 代码 | Gitea 1.27 | 自建 Git |
| 构建 | Kaniko | 集群内构建,无需特权 |
| 存储 | Harbor + Longhorn | 镜像 45MB,文章存卷上 |
| 部署 | kubectl set image | Recreate 策略避免卷冲突 |
这段文字本身也存在 Longhorn 卷里,Pod 重启不会丢。