跳至主要內容

概述和准备


概述和准备

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 CD-pipeline.png

2.内置自动化工具箱

  • Source-to-Image 从源代码构建可再现容器镜像,无需编写 Dockerfile
  • Binary-to-image 将您的制品自动构建成可运行镜像
  • 支持自动化构建和推送镜像至任意仓库,并最终部署至 Kubernetes
  • 卓越的可恢复性和灵活性,您可以在需要补丁时重新构建并重新运行 S2I/B2I Built-in-automated-toolkits.png

3.使用 Jenkins 流水线实现 DevOps

  • 融合 Git 和 Kubernetes,实现云原生应用自动化交付
  • 基于 KubeSphere 多租户体系,为 DevOps 工程团队打造合作平台
  • 易于观察,为 S2I/B2I 构建以及流水线提供动态日志
  • 在流水线中提供审计、告警和通知功能,确保快速定位并解决问题
  • 支持添加 Git SCM Webhook,在提交新的 Commit 到分支时触发 Jenkins 构建 Clear-insight.png

本章节演示如何在 KubeSphere 中使用图形编辑面板创建流水线。

KubeSphere 在整个过程中将根据在编辑面板上的设置自动生成 Jenkinsfile。待流水线成功运行,会相应地在开发环境中创建一个部署 (Deployment) 和一个服务 (Service),并将镜像推送至 Docker镜像仓库。

本次演示的流水线包含以下流程:

  • 阶段 1:Checkout SCM:从 Git 仓库拉取源代码。
  • 阶段 2:单元测试:待该测试通过后才会进行下一阶段。
  • 阶段 3:代码分析:配置 SonarQube 用于静态代码分析。
  • 阶段 4:构建并推送:构建镜像并附上标签 snapshot-$BUILD_NUMBER 推送至镜像仓库,其中 $BUILD_NUMBER 是流水线活动列表中的记录的序列号。
  • 阶段 5:制品:生成一个制品(JAR 文件包)并保存。
  • 阶段 6:部署至开发环境:在开发环境中创建一个部署和一个服务。

img.png

准备工作

提前准备以下信息和操作:

  • Git代码仓库帐户。
  • Harbor镜像仓库和帐户。
  • 提前创建好企业空间、DevOps项目(用于管理CICD流水线)。
  • 示例代码:https://github.com/kubesphere/devops-maven-sample.git