极狐 GitLab

GitLab Runner

Tier: 基础版,专业版,旗舰版

Offering: JihuLab.com,极狐GitLab 私有化部署

GitLab Runner 是一个与极狐GitLab CI/CD 配合使用的应用程序,用于在流水线中运行作业。

当开发者将代码推送到极狐GitLab 时,他们可以在 .gitlab-ci.yml 文件中定义自动化任务。 这些任务可能包括运行测试、构建应用程序或部署代码。 GitLab Runner 是在计算基础设施上执行这些任务的应用程序。

作为管理员,您负责提供和管理这些 CI/CD 作业运行的基础设施。 这涉及安装 GitLab Runner 应用程序、配置它们,并确保它们有足够的容量 来处理您组织的 CI/CD 工作负载。

GitLab Runner 的功能#

GitLab Runner 连接到您的极狐GitLab 实例并等待 CI/CD 作业。当流水线运行时,极狐GitLab 会将作业发送给可用的 Runner。 Runner 执行作业并将结果报告回极狐GitLab。

GitLab Runner 具有以下功能。

  • 并发运行多个作业。
  • 使用多个令牌连接多个服务器(甚至可以是每个项目一个)。
  • 限制每个令牌的并发作业数。
  • 作业可以通过以下方式运行:
    • 本地运行。
    • 使用 Docker 容器。
    • 使用 Docker 容器并通过 SSH 执行作业。
    • 使用 Docker 容器在不同云和虚拟化 hypervisor 上自动扩缩容。
    • 连接到远程 SSH 服务器。
  • 使用 Go 编写,并作为单个二进制文件分发,无需任何其他依赖。
  • 支持 Bash、PowerShell Core 和 Windows PowerShell。
  • 适用于 GNU/Linux、macOS 和 Windows(几乎任何可以运行 Docker 的地方)。
  • 允许自定义作业运行环境。
  • 无需重启即可自动重新加载配置。
  • 无缝设置,支持 Docker、Docker-SSH、Parallels 或 SSH 运行环境。
  • 支持缓存 Docker 容器。
  • 可作为服务在 GNU/Linux、macOS 和 Windows 上无缝安装。
  • 内置 Prometheus 指标 HTTP 服务器。
  • 使用裁判(Referee)工作进程来监控并将 Prometheus 指标和其他特定于作业的数据传递给极狐GitLab。

Runner 执行流程#

此图展示了 Runner 如何注册以及作业如何被请求和处理。它还展示了哪些操作使用注册和身份验证令牌作业令牌

Rendering chart...

Runner 部署选项#

极狐GitLab 托管的 Runner#

极狐GitLab 托管的 Runner 由极狐GitLab 管理,可在 JihuLab.com 上使用。 您无需安装或维护这些 Runner——极狐GitLab 将其作为服务提供。 但是,您对执行环境的控制有限,并且无法自定义基础设施。

私有化部署的 Runner#

私有化部署的 Runner 是您在自己的基础设施中安装、配置和管理的 GitLab Runner 实例。您可以在所有极狐GitLab 安装上安装和注册私有化部署的 Runner。 作为管理员,您通常使用私有化部署的 Runner。

与由极狐GitLab 托管和管理的极狐GitLab 托管 Runner 不同,您对私有化部署的 Runner 拥有完全控制权。

GitLab Runner 版本#

出于兼容性原因,GitLab Runner 的 major.minor 版本 应与极狐GitLab 的主版本和次版本保持同步。较旧的 Runner 可能仍可与 较新版本的极狐GitLab 配合使用,反之亦然。但是,如果存在版本差异, 某些功能可能不可用或无法正常工作。

次版本更新之间保证向后兼容。但是,有时极狐GitLab 的次版本 更新可能会引入新功能,这些功能要求 GitLab Runner 保持相同的次版本。

如果您托管自己的 Runner,但将代码仓库托管在 JihuLab.com 上, 请将 GitLab Runner 更新到最新版本,因为 JihuLab.com 会 持续更新

故障排查#

了解如何排查常见问题。

术语表#

  • GitLab Runner:在目标计算平台上执行来自极狐GitLab 流水线的 CI/CD 作业的应用程序。
  • Runner:GitLab Runner 的一个已配置实例,可以执行作业。根据执行器的类型, 此机器可能位于 Runner 管理器本地(shelldocker 执行器)或由自动扩缩器创建的远程机器 (docker-autoscalerkubernetes)。
  • Runner 配置config.toml 中的单个 [[runner]] 条目,在 UI 中显示为 runner
  • Runner 管理器:读取 config.toml 文件并并发运行所有 Runner 配置和作业执行的进程。
  • 机器:Runner 运行的虚拟机(VM)或 Pod。 GitLab Runner 会自动生成唯一的、持久的机器 ID,以便当多台机器被赋予相同的 Runner 配置时, 作业可以单独路由,但 Runner 配置在 UI 中会分组显示。
  • 执行器:GitLab Runner 用于执行作业的方法(Docker、Shell、Kubernetes 等)。
  • 流水线:当代码推送到极狐GitLab 时自动运行的作业集合。
  • 作业:流水线中的单个任务,例如运行测试或构建应用程序。
  • Runner 令牌:允许 Runner 与极狐GitLab 进行身份验证的唯一标识符。
  • 标签:分配给 Runner 的标签,用于确定它们可以执行哪些作业。
  • 并发作业:Runner 可以同时执行的作业数。
  • 私有化部署的 Runner:在您自己的基础设施上安装和管理的 Runner。
  • 极狐GitLab 托管的 Runner:由极狐GitLab 提供和管理的 Runner。

有关更多信息,请参阅官方 GitLab 词汇表 以及 GitLab 架构中关于 GitLab Runner 的条目。

贡献#

欢迎贡献。有关详细信息,请参阅 CONTRIBUTING.md开发文档

如果您是 GitLab Runner 项目的审阅者,请花点时间阅读 审阅 GitLab Runner 文档。

您还可以查看 GitLab Runner 项目的发布流程

更新日志#

查看 CHANGELOG 以了解最近的更改。

许可证#

此代码根据 MIT 许可证分发。查看 LICENSE 文件。