Help us learn about your current experience with the documentation. Take the survey.

GitLab 托管的 Runner

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Dedicated

使用 GitLab 托管的 Runner 在 GitLab.com 和 GitLab Dedicated 上运行您的 CI/CD 作业。 这些 Runner 可以在不同环境中构建、测试和部署应用程序。

要创建和注册您自己的 Runner,请参阅 自托管 Runner

GitLab.com 的托管 Runner

  • Offering: GitLab.com

这些 Runner 与 GitLab.com 完全集成,默认为所有项目启用,无需配置。 您的作业可以在以下环境中运行:

GitLab.com 托管 Runner 工作流程

当您使用托管 Runner 时:

  • 您的每个作业都在新配置的虚拟机中运行,该虚拟机专用于特定作业。
  • 运行您作业的虚拟机具有无密码的 sudo 访问权限。
  • 存储空间由操作系统、预装软件的容器镜像和您克隆的仓库副本共享。 这意味着您的作业可用的免费磁盘空间会减少。
  • 未标记 的作业在 small Linux x86-64 Runner 上运行。

由 GitLab.com 托管 Runner 处理的作业在 3 小时后超时,无论项目中配置的超时时间如何。

GitLab.com 托管 Runner 的安全性

以下部分概述了增强 GitLab Runner 构建环境安全性的额外内置层。

GitLab.com 托管 Runner 的配置如下:

  • 防火墙规则只允许临时虚拟机向公共互联网进行出站通信。
  • 不允许从公共互联网到临时虚拟机的入站通信。
  • 防火墙规则不允许虚拟机之间的通信。
  • 允许与临时虚拟机进行的唯一内部通信来自 Runner 管理器。
  • 临时 Runner 虚拟机只服务单个作业,并在作业执行完成后立即删除。

GitLab.com 托管 Runner 的架构图

下图显示了 GitLab.com 托管 Runner 的架构图

GitLab.com 托管 Runner 架构

有关 Runner 如何验证和执行作业负载的更多信息,请参阅 Runner 执行流程

GitLab.com 托管 Runner 的作业隔离

除了在网络层面隔离 Runner 外,每个临时 Runner 虚拟机只服务单个作业,并在作业执行完成后立即删除。 在以下示例中,三个作业在项目的流水线中执行。每个作业都在专用的临时虚拟机中运行。

作业隔离

构建作业在 runner-ns46nmmj-project-43717858 上运行,测试作业在 f131a6a2runner-new2m-od-project-43717858 上运行,部署作业在 runner-tmand5m-project-43717858 上运行。

CI 作业完成后,GitLab 立即向 Google Compute API 发送删除临时 Runner 虚拟机的命令。Google Compute Engine 虚拟机监控程序 接管安全删除虚拟机和相关数据的任务。

有关 GitLab.com 托管 Runner 安全性的更多信息,请参阅:

GitLab.com 托管 Runner 的缓存

托管 Runner 共享存储在 Google Cloud Storage (GCS) 存储桶中的 分布式缓存。 根据 对象生命周期管理策略,最近 14 天未更新的缓存内容会自动删除。 缓存成为压缩归档文件后,上传的缓存工件最大可为 5 GB。

有关缓存工作原理的更多信息,请参阅 GitLab.com 托管 Runner 的架构图,和 GitLab CI/CD 中的缓存

GitLab.com 托管 Runner 的定价

在 GitLab.com 托管 Runner 上运行的作业会消耗分配给您的命名空间的 计算分钟数。 您在这些 Runner 上可使用的分钟数取决于您 订阅计划 中包含的计算分钟数或 额外购买的计算分钟数

有关基于大小应用于机器类型的成本因子的更多信息,请参阅 成本因子

GitLab.com 托管 Runner 的 SLO 和发布周期

我们的 SLO 目标是让 90% 的 CI/CD 作业在 120 秒或更短时间内开始执行。错误率应低于 0.5%。

我们旨在在最新版本发布后一周内更新到 GitLab Runner。 您可以在 弃用和移除 下找到所有 GitLab Runner 的重大变更。

GitLab 社区贡献的托管 Runner

  • Offering: GitLab.com

如果您想 为 GitLab 做贡献,作业会被专用于 GitLab 项目和相关社区分叉的 gitlab-shared-runners-manager-X.gitlab.com Runner 队列拾取。

这些 Runner 与我们的 small Linux x86-64 Runner 使用相同的机器类型。 与 GitLab.com 的托管 Runner 不同,GitLab 社区贡献的托管 Runner 可重复使用最多 40 次。

由于我们希望鼓励人们做出贡献,这些 Runner 免费使用。

GitLab Dedicated 的托管 Runner

  • Offering: GitLab Dedicated

GitLab Dedicated 的托管 Runner 按需创建,并与您的 GitLab Dedicated 实例完全集成。 有关更多信息,请参阅 GitLab Dedicated 的托管 Runner

支持的镜像生命周期

macOS 和 Windows 上的托管 Runner 只能在支持的镜像上运行作业。您不能自带镜像。 支持的镜像具有以下生命周期:

测试版

新镜像以测试版发布。这使我们能够在正式发布前收集反馈并解决潜在问题。 在测试版镜像上运行的作业不受服务级别协议的保障。 如果您使用测试版镜像,可以通过创建 issue 提供反馈。

正式发布

镜像在完成测试版阶段并被认为是稳定后,将正式发布。 要正式发布,镜像必须满足以下要求:

  • 通过解决所有报告的重大问题成功完成测试版阶段
  • 已安装软件与底层操作系统的兼容性

在正式发布的镜像上运行的作业受定义的服务级别协议保障。

已弃用

最多同时支持两个正式发布的镜像。在发布新的正式发布镜像后,最旧的正式发布镜像将被弃用。 弃用的镜像不再更新,并在 3 个月后删除。

使用数据

您可以 查看估算值 来了解 GitLab 托管 Runner 在 GitLab Dedicated 上的计算分钟数使用情况。