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访问权限。 - 存储空间由操作系统、预装软件的容器镜像和您克隆的仓库副本共享。 这意味着您的作业可用的免费磁盘空间会减少。
- 未标记 的作业在
smallLinux x86-64 Runner 上运行。
由 GitLab.com 托管 Runner 处理的作业在 3 小时后超时,无论项目中配置的超时时间如何。
GitLab.com 托管 Runner 的安全性
以下部分概述了增强 GitLab Runner 构建环境安全性的额外内置层。
GitLab.com 托管 Runner 的配置如下:
- 防火墙规则只允许临时虚拟机向公共互联网进行出站通信。
- 不允许从公共互联网到临时虚拟机的入站通信。
- 防火墙规则不允许虚拟机之间的通信。
- 允许与临时虚拟机进行的唯一内部通信来自 Runner 管理器。
- 临时 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 安全性的更多信息,请参阅:
- Google Cloud Infrastructure Security Design Overview whitepaper
- GitLab Trust Center
- GitLab Security Compliance Controls
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 上的计算分钟数使用情况。