建立流水线可以帮助开发人员尽快,高效地交付新软件。使用 Rancher,您可以与 GitHub 等版本控制系统集成,以设置持续集成(CI)流水线。

配置 Rancher 和 GitHub 等版本控制系统后,Rancher 将部署运行 Jenkins 的容器以自动化执行流水线:

  • 构建镜像
  • 验证镜像
  • 部署镜像到集群
  • 执行单元测试
  • 执行回归测试

有关本节中使用的概念和术语的说明,请参阅。

流水线的工作原理

Rancher 项目启用了流水线功能后,您可以给每一个 Rancher 项目配置多条流水线。每一条流水线都是独立的,您可以单独配置每一条流水线的参数。

流水线是配置到源代码仓库的一组文件。用户可以使用 Rancher UI 配置流水线,或在代码库中添加一个,配置流水线。

在设置任何流水线之前,请确保此项目已经对接了您的版本管理工具,例如,GitHub,GitLab,Bitbucket。如果您没有配置版本管理工具,您可以使用Rancher 提供的示例代码库去预览一些常见的流水线部署流程。

当您配置项目流水线的时候,Rancher 会自动创建一个供流水线使用的命名空间。以下的组件会部署到这个命名空间里面:

  • Jenkins:

    Jenkins 是构建流水线引擎。因为项目用户不会直接与 Jenkins 交互,它是被托管的,所以您不能直接管理它。

    说明: Rancher 不支持使用已有的 Jenkins 作为流水线引擎,Rancher 将在集群内部署一个 Jenkins。

  • Docker 镜像仓库:

    Docker 镜像仓库是存储镜像的组件。您使用 Rancher 构建-发布的镜像或应用,默认会推送到 Rancher 内部的 Docker 镜像仓库。但是您可以修改默认配置,把镜像推送到远端仓库。Rancher 内部的 Docker 镜像仓库只能通过集群内的节点访问,用户不能直接访问。镜像留存的时间不会超过项目流水线的生命周期,而且镜像应该只用于流水线运行。如果您需要在流水线运行以外的时间访问镜像,请使用外部镜像仓库。

  • Minio:

    Minio 是存储 Rancher 流水线日志的组件。

如果您可以访问一个项目,您就能激活代码库来构建流水线。

但只有,集群所有者或集群成员,或者能够授权版本管理工具并修改其他项目层级的流水线参数设置。

项目成员只能配置代码库和流水线。

配置流水线

要设置流水线,您需要执行以下操作:

配置流水线前,您必须配置和授权版本控制工具提供商 。Rancher 支持的版本控制工具提供商 包括:GitHub、GitLab 和 Bitbucket,详情如下表所示。

选择一个版本控制工具提供商 然后按照以下步骤操作。

GitHub

  1. 从全局页面导航到需要配置流水线的项目。

  2. 从导航栏选择 工具 > 流水线。如果您使用的是 v2.2.0 以前的版本,请选择资源 > 流水线

  3. 按照 UI 界面的的提示,配置 Github 应用。Rancher 会打开 Github 网页,在里面配置一个 OAuth 应用。

  4. 把从 GitHub 复制的Client IDClient Secret,粘贴到 Rancher UI 的对应位置。

GitLab

v2.1.0 或更新版本可用

  1. 从全局页面导航到需要配置流水线的项目。

  2. 从导航栏选择 工具 > 流水线。如果您使用的是 v2.2.0 以前的版本,请选择资源 > 流水线

  3. 按照 UI 界面的的提示,配置 GitLab 应用。Rancher 会打开 GitLab 网页。

  4. 从 GitLab 复制Applicat ion IDSecret,粘贴到 Rancher UI 的对应位置。

  5. 如果您使用的是企业版 GitLab,选择使用私有 GitLab 部署,输入安装 GitLab 的主机地址。

  6. 单击认证,完成认证。

说明:

  1. Rancher 流水线使用的 GitLab API 接口是 v4 API。流水线支持的 GitLab 版本是 9.0 及更新版本。
  2. 如果您使用的是 GitLab 10.7 或更新版本,且在本地安装了 Rancher,请启用 GitLab admin setting 的 Allow requests to the local network from hooks and services 功能。

Bitbucket Cloud

v2.2.0 或更新版本可用

  1. 从全局页面导航到需要配置流水线的项目。

  2. 从导航栏选择 工具 > 流水线

  3. 选择使用 Bitbucket Cloud选项。

  4. 按照 UI 界面的的提示,配置 Bitbucket Cloud 应用。Rancher 会打开 Bitbucket 网页,在里面配置一个 OAuth consumer。

  5. 从 Bitbucket 复制 consumer KeySecret,粘贴到 Rancher UI 的对应位置。

  6. 单击认证,完成认证。

Bitbucket Server

v2.2.0 或更新版本可用

  1. 从全局页面导航到需要配置流水线的项目。

  2. 从导航栏选择 工具 > 流水线

  3. 选择使用私有 Bitbucket Server选项。

  4. 按照 UI 界面的的提示,配置 Bitbucket Server 应用

  5. 输入安装 Bitbucket 的主机地址。

  6. 单击认证,完成认证。

结果: 完成版本控制工具提供商认证后,Rancher 会重新导向到开始的页面。启用代码库后,您可以开始配置流水线

授权版本管理工具后,UI 将自动重定向,您可以开始配置您的代码库来激活流水线。如果其他人也设置了版本管理工具,您也将看到他们的代码库并可以运行相应的流水线。

  1. 全局视图,导航到您想要配置流水线的项目。

  2. 点击资源 > 流水线。在 v2.3.0 之前版本,点击工作负载 > 流水线

  3. 显示代码库列表。如果您是第一次配置代码库,点击 认证 & 同步代码库去刷新您的代码库列表。

  4. 对于您想设置流水线的每个代码库,点击启用

  5. 当您启用所有代码库后,点击完成

效果: 您已经有了一列可以用来配置流水线的代码库。

现在代码库已经添加到了您的项目中,您可以开始添加自动化的阶段和步骤来配置流水线了。这里有多种内置的步骤类型便您使用。

  1. 点击 资源 > 流水线。在 v2.3.0 之前版本,点击 工作负载 > 流水线

  2. 找到您想设置流水线的代码库。

  3. 通过 UI 或者使用代码库中的 yml 文件,例如 .rancher-pipeline.yml 或者 .rancher-pipeline.yaml进行流水线的配置。流水线的配置分为阶段和。在进入下一个阶段之前,当前阶段必须全部完成,但是一个阶段中的是同时运行的。对于每个阶段,您可以添加不同的步骤类型。注意:在构建每个步骤时,根据步骤类型有不同的高级选项。高级选项包括触发规则,环境变量和密文。有关通过 UI 或 YAML 文件配置流水线的更多信息,请参考。

    • 如果您正在使用 UI,选择 省略号 (…) > 编辑配置 来使用 UI 配置流水线,流水线配置之后,您需要查看 YAML 文件并推送此文件到远端代码库。您也可以直接在 Rancher UI 上将更新后的 YAML 文件同步到代码库中。
    • 如果正在使用 YAML 文件,选择 省略号(…) > 查看/编辑 YAML 来配置流水线。如果您选择使用 YAML 文件,您需要在进行任何更改后将其推送到代码库中。您也可以直接在 Rancher UI 上将更新后的 YAML 文件同步到代码库中。当编辑流水线配置时,Rancher 会花一些时间去检查现有流水线配置。
  4. 从分支列表中选择要使用的代码分支

  5. 自 v2.2.0 起可用 可选:设置通知。

  6. 设置流水线的触发规则。

  7. 输入流水线的超时时间

  8. 配置完所有阶段和步骤后,单击完成

结果:您的流水线现已完成配置并可以运行。

请参考流水线配置参考,了解更多关于如何配置流水线的细节。

  • 运行脚本
  • 构建和发布镜像
  • 发布应用模板
  • 部署 YAML
  • 部署应用商店应用

配置参考还介绍了如何配置:

  • 通知
  • 超时
  • 触发流水线的规则
  • 环境变量
  • 密文

运行流水线

现在可以开始运行流水线了。从 Rancher 的项目视图中,转到 资源 > 流水线。 (在 v2.3.0 之前的版本中,转到 流水线 选项卡)找到您的流水线,选择 省略号(…) > 运行

在此第一次运行流水线的时候,Rancher 会将以下作为工作负载部署到项目的新命名空间中,作为专用于流水线的工作负载:

  • docker-registry
  • jenkins

此过程需要几分钟。完成后,您可以从项目的工作负载选项卡中查看每个流水线组件。

启用代码库后,将在版本控制工具中自动设置一个 Webhook。默认情况下,流水线是由向代码库的push事件触发的,但是您可以修改触发运行流水线的事件。

可用事件:

  • Push: 当将代码推送到代码库中的分支时,触发流水线。
  • Pull Request: 每当对代码库提 Pull Request 时,触发流水线。
  • Tag: 在代码库中创建 tag 时,触发流水线。

注意: 对于 Rancher 的示例代码库,流水线的设置项不存在。

  1. 全局 视图,导航到要修改流水线触发事件的项目。

  2. 点击 资源 > 流水线。在 v2.3.0 之前的版本中,点击 工作负载 > 流水线

  3. 找到您要修改事件触发器的代码库。选择省略号(…)> 设置