概述和准备
概述和准备
KubeSphere DevOps 提供基于 Jenkins 的 CI/CD 流水线,支持自动化工作流,包括 Binary-to-Image (B2I) 和 Source-to-Image (S2I) 等。
1.开箱即用的 CI/CD 流水线
- 易于集成至您的 SCM,支持 GitLab/GitHub/BitBucket/SVN
- 图形编辑面板设计,可创建 CI/CD 流水线且无需编写 Jenkinsfile
- 集成 SonarQube,实现源代码质量分析
- 支持依赖项缓存,加快构建和部署
- 动态构建 Agent,根据需要自动创建 Pod
2.内置自动化工具箱
- Source-to-Image 从源代码构建可再现容器镜像,无需编写 Dockerfile
- Binary-to-image 将您的制品自动构建成可运行镜像
- 支持自动化构建和推送镜像至任意仓库,并最终部署至 Kubernetes
- 卓越的可恢复性和灵活性,您可以在需要补丁时重新构建并重新运行 S2I/B2I
3.使用 Jenkins 流水线实现 DevOps
- 融合 Git 和 Kubernetes,实现云原生应用自动化交付
- 基于 KubeSphere 多租户体系,为 DevOps 工程团队打造合作平台
- 易于观察,为 S2I/B2I 构建以及流水线提供动态日志
- 在流水线中提供审计、告警和通知功能,确保快速定位并解决问题
- 支持添加 Git SCM Webhook,在提交新的 Commit 到分支时触发 Jenkins 构建
本章节演示如何在 KubeSphere 中使用图形编辑面板创建流水线。
KubeSphere 在整个过程中将根据在编辑面板上的设置自动生成 Jenkinsfile。待流水线成功运行,会相应地在开发环境中创建一个部署 (Deployment) 和一个服务 (Service),并将镜像推送至 Docker镜像仓库。
本次演示的流水线包含以下流程:
- 阶段 1:Checkout SCM:从 Git 仓库拉取源代码。
- 阶段 2:单元测试:待该测试通过后才会进行下一阶段。
- 阶段 3:代码分析:配置 SonarQube 用于静态代码分析。
- 阶段 4:构建并推送:构建镜像并附上标签 snapshot-$BUILD_NUMBER 推送至镜像仓库,其中 $BUILD_NUMBER 是流水线活动列表中的记录的序列号。
- 阶段 5:制品:生成一个制品(JAR 文件包)并保存。
- 阶段 6:部署至开发环境:在开发环境中创建一个部署和一个服务。
准备工作
提前准备以下信息和操作:
- Git代码仓库帐户。
- Harbor镜像仓库和帐户。
- 提前创建好企业空间、DevOps项目(用于管理CICD流水线)。
- 示例代码:https://github.com/kubesphere/devops-maven-sample.git