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 管理器本地(shell 或 docker 执行器)或由自动扩缩器创建的远程机器 (docker-autoscaler 或 kubernetes)。
- 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 文件。