适用场景

后端服务 / 前端项目 / 微服务

代码提交 → 自动构建 → 自动发布 → 无需人工操作

一、整体架构(最标准企业架构)

开发者提交代码
    ↓
Git 代码仓库
    ↓
Jenkins 自动触发 CI
    ↓
代码拉取 → 编译构建 → 单元测试
    ↓
构建 Docker 镜像
    ↓
推送镜像到阿里云镜像仓库
    ↓
更新 K8s YAML 配置文件
    ↓
Argo CD 自动同步到 K8s 集群
    ↓
服务正式上线

二、完整可落地 CI/CD 流程(一步一步)

1. 开发提交代码

git add .
git commit -m "feat: 添加用户模块"
git push

2. Jenkins 自动触发构建

触发方式:

  • Webhook 自动触发

  • 或定时轮询

Jenkins 任务执行:

  1. 拉取最新代码

  2. 代码编译 / 打包

    • 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 许可协议。转载请注明来自 楚少爱看雪
学习 Study
喜欢就支持一下吧