企业级标准 CI/CD 自动化部署流程(Jenkins + Git + 镜像仓库 + K8s)
适用场景
后端服务 / 前端项目 / 微服务
代码提交 → 自动构建 → 自动发布 → 无需人工操作
一、整体架构(最标准企业架构)
开发者提交代码
↓
Git 代码仓库
↓
Jenkins 自动触发 CI
↓
代码拉取 → 编译构建 → 单元测试
↓
构建 Docker 镜像
↓
推送镜像到阿里云镜像仓库
↓
更新 K8s YAML 配置文件
↓
Argo CD 自动同步到 K8s 集群
↓
服务正式上线
二、完整可落地 CI/CD 流程(一步一步)
1. 开发提交代码
git add .
git commit -m "feat: 添加用户模块"
git push
2. Jenkins 自动触发构建
触发方式:
Webhook 自动触发
或定时轮询
Jenkins 任务执行:
拉取最新代码
代码编译 / 打包
Java:mvn clean package
Go:go build
前端:npm install && npm run build
3. 构建 Docker 镜像
使用项目里的 Dockerfile 构建:
docker build -t 阿里云地址/命名空间/项目名:版本号 .
示例:
docker build -t crpi-xxx.cn-hangzhou.personal.cr.aliyuncs.com/dajiushida/app-demo:v10 .
4. 推送镜像到阿里云镜像仓库
docker login -u 用户名 -p 密码 阿里云地址
docker push 阿里云地址/命名空间/项目名:版本号
镜像仓库作用:
K8s 只能从镜像仓库拉取镜像
镜像统一管理、版本管理
5. 更新 K8s 部署 YAML 文件
Jenkins 将 YAML 里的镜像版本自动更新:
image: crpi-xxx.cn-hangzhou.personal.cr.aliyuncs.com/dajiushida/app-demo:v10
然后提交回 Git 仓库。
6. Argo CD 自动同步部署
Argo CD 监听 Git 仓库,发现 YAML 变化后:
自动同步到 K8s
自动发布新版本
自动重启 Pod
命令等价于:
kubectl apply -f deployment.yaml
7. K8s 从阿里云拉取镜像并启动服务
K8s → 阿里云镜像仓库 → 下载镜像 → 创建 Pod → 服务上线
三、CI/CD 最终效果
✅ 代码提交自动触发
✅ 自动构建镜像
✅ 自动推送仓库
✅ 自动发布到 K8s
✅ 全程无人值守
✅ 一键回滚
✅ 发布历史可追溯
四、企业标准 Jenkinsfile(可直接使用)
pipeline {
agent any
environment {
REGISTRY = "阿里云仓库地址"
NAMESPACE = "命名空间"
APP_NAME = "app-demo"
VERSION = "v${BUILD_NUMBER}"
}
stages {
stage('拉取代码') { steps { echo '代码拉取成功' } }
stage('编译构建') { steps { echo '编译完成' } }
stage('构建镜像') { steps { sh "docker build -t ${REGISTRY}/${NAMESPACE}/${APP_NAME}:${VERSION} ." } }
stage('推送镜像') { steps { sh "docker push ${REGISTRY}/${NAMESPACE}/${APP_NAME}:${VERSION}" } }
stage('更新YAML') { steps { echo 'YAML已更新' } }
stage('CD自动部署') { steps { echo 'Argo CD自动同步完成' } }
}
}
五、流程总结(最经典的企业 CI/CD 思想)
CI = 构建 + 测试 + 打包镜像
CD = 发布 + 部署 + 上线
Git 是唯一来源
镜像仓库是统一存储
K8s 是运行环境
Jenkins + Argo CD 是自动化大脑
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
楚少爱看雪!
喜欢就支持一下吧