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

GitLab Dedicated 的托管 runner

  • Tier: Ultimate
  • Offering: GitLab Dedicated
  • Status: 有限可用

要使用此功能,您必须购买 GitLab Dedicated 托管 runner 的订阅。如要参与托管 runner 的有限可用性计划,请联系您的客户成功经理或客户代表。

您可以在 GitLab 托管的 runner 上运行您的 CI/CD 作业。这些 runner 由 GitLab 管理,并与您的 GitLab Dedicated 实例完全集成。 GitLab Dedicated 的托管 runner 是自动扩缩容的 实例 runner, 在与 GitLab Dedicated 实例同一区域的 AWS EC2 上运行。

当您使用托管 runner 时:

  • 每个作业都在一个新配置的虚拟机 (VM) 中运行,该虚拟机专用于该特定作业。
  • 运行您作业的 VM 拥有无密码的 sudo 访问权限。
  • 存储空间由操作系统、预装软件的镜像以及您克隆的仓库副本共享。这意味着您作业可用的可用磁盘空间会减少。
  • 默认情况下,无标签作业在小型 Linux x86-64 runner 上运行。GitLab 管理员可以在 GitLab 中更改运行无标签作业的选项

Linux 托管 runner

GitLab Dedicated 的 Linux 托管 runner 使用 Docker Autoscaler 执行器。每个作业在一个完全隔离的临时虚拟机 (VM) 中获得一个 Docker 环境,并在最新版本的 Docker Engine 上运行。

Linux 机型 - x86-64

Linux x86-64 托管 runner 提供以下机型。

规格 Runner 标签 vCPU 内存 存储
Small linux-small-amd64 (默认) 2 8 GB 30 GB
Medium linux-medium-amd64 4 16 GB 50 GB
Large linux-large-amd64 8 32 GB 100 GB
X-Large linux-xlarge-amd64 16 64 GB 200 GB
2X-Large linux-2xlarge-amd64 32 128 GB 200 GB

Linux 机型 - Arm64

Linux Arm64 托管 runner 提供以下机型。

规格 Runner 标签 vCPU 内存 存储
Small linux-small-arm64 2 8 GB 30 GB
Medium linux-medium-arm64 4 16 GB 50 GB
Large linux-large-arm64 8 32 GB 100 GB
X-Large linux-xlarge-arm64 16 64 GB 200 GB
2X-Large linux-2xlarge-arm64 32 128 GB 200 GB

机型和底层处理器类型可能会发生变化。针对特定处理器设计优化的作业可能会表现不一致。

默认的 runner 标签在创建时分配。管理员随后可以为其实例 runner 修改标签设置

容器镜像

由于 Linux runner 使用 Docker Autoscaler 执行器,您可以通过在 .gitlab-ci.yml 文件中定义镜像来选择任何容器镜像。请确保所选的 Docker 镜像与底层处理器架构兼容。请参阅 .gitlab-ci.yml 文件示例

如果未设置镜像,则默认为 ruby:3.1

如果您使用来自 Docker Hub 容器镜像库的镜像,可能会遇到速率限制。这是因为 GitLab Dedicated 使用单一的网络地址转换 (NAT) IP 地址。

为避免速率限制,请改用:

  • 存储在 GitLab 容器镜像库 中的镜像。
  • 存储在其他无速率限制的公共镜像库中的镜像。
  • 依赖代理,它充当一个拉取缓存 (pull-through cache)。

Docker in Docker 支持

runner 被配置为在特权模式下运行,以支持 Docker in Docker,从而原生地构建 Docker 镜像或在您的隔离作业中运行多个容器。

管理托管 runner

在 Switchboard 中管理托管 runner

您可以使用 Switchboard 为您的 GitLab Dedicated 实例创建和查看托管 runner。

前提条件:

  • 您必须购买 GitLab Dedicated 托管 runner 的订阅。

在 Switchboard 中创建托管 runner

对于每个实例,您可以创建每种类型和大小组合的一个 runner。Switchboard 会显示可用的 runner 选项。

要创建托管 runner:

  1. 登录 Switchboard
  2. 在页面顶部,选择 Hosted runners
  3. 选择 New hosted runner
  4. 为 runner 选择一个规格,然后选择 Create hosted runner

当您的托管 runner 准备就绪后,您将收到一封电子邮件通知。

在 Switchboard 中查看托管 runner

要查看托管 runner:

  1. 登录 Switchboard
  2. 在页面顶部,选择 Hosted runners
  3. 可选。从托管 runner 列表中,复制您想要在 GitLab 中访问的 runner 的 Runner ID

在 GitLab 中查看和配置托管 runner

GitLab 管理员可以从 管理员区域 为其 GitLab Dedicated 实例管理托管 runner。

在 GitLab 中查看托管 runner

您可以在 Runners 页面和 Fleet dashboard 中查看您 GitLab Dedicated 实例的托管 runner。

前提条件:

  • 您必须是管理员。

目前暂不提供计算使用情况的可视化,但有一个 epic 计划在正式发布 (GA) 时添加此功能。

要在 GitLab 中查看托管 runner:

  1. 在左侧边栏的底部,选择 管理员
  2. 选择 CI/CD > Runners
  3. 可选。选择 Fleet dashboard

在 GitLab 中配置托管 runner

前提条件:

  • 您必须是管理员。

您可以为您的 GitLab Dedicated 实例配置托管 runner,包括更改 runner 标签的默认值。

可用的配置选项包括:

对 runner 描述和 runner 标签的任何更改都不受 GitLab 控制。

在 GitLab 中为组或项目禁用托管 runner

默认情况下,托管 runner 可用于您 GitLab Dedicated 实例中的所有项目和组。GitLab 维护者可以为项目禁用托管 runner。

安全与网络

GitLab Dedicated 的托管 runner 具有内置的安全层,可增强 GitLab Runner 构建环境的安全性。

GitLab Dedicated 的托管 runner 具有以下配置:

  • 防火墙规则仅允许从临时 VM 到公共互联网的出站通信。
  • 防火墙规则不允许从公共互联网到临时 VM 的入站通信。
  • 防火墙规则不允许 VM 之间的通信。
  • 只有 runner 管理器才能与临时 VM 通信。
  • 临时 runner VM 仅服务于单个作业,并在作业执行后被删除。

您还可以启用从托管 runner 到您 AWS 账户的私有连接

有关更多信息,请参阅 GitLab Dedicated 托管 runner 的架构图。

出站私有链接

出站私有链接在 GitLab Dedicated 的托管 runner 与您 AWS VPC 中的服务之间建立安全连接。此连接不会将任何流量暴露给公共互联网,并允许托管 runner:

  • 访问私有服务,例如自定义密钥管理器。
  • 检索存储在您基础设施中的制品或作业镜像。
  • 部署到您的基础设施。

在 GitLab 管理的 runner 账户中,所有 runner 默认存在两个出站私有链接:

  • 指向您 GitLab 实例的链接
  • 指向 GitLab 控制的 Prometheus 实例的链接

这些链接是预配置的,无法修改。租户的 Prometheus 实例由 GitLab 管理,用户无法访问。

要将出站私有链接与其他 VPC 服务配合用于托管 runner,需要通过支持请求进行手动配置。有关更多信息,请参阅出站私有链接

IP 范围

GitLab Dedicated 托管 runner 的 IP 范围可根据要求提供。IP 范围按尽力而为 (best-effort) 的方式进行维护,并可能因基础设施的变更而随时更改。有关更多信息,请联系您的客户成功经理或客户代表。

使用托管 runner

在您在 Switchboard 中创建托管 runner且 runner 准备就绪后,即可使用它们。

要使用 runner,请调整 .gitlab-ci.yml 文件中作业配置里的标签,使其与您想要使用的托管 runner 相匹配。

对于 Linux 中型 x86-64 runner,按如下方式配置您的作业:

job_name:
  tags:
    - linux-medium-amd64  # 使用中型 Linux runner

默认情况下,无标签作业由小型 Linux x86-64 runner 接收。GitLab 管理员可以在 GitLab 中配置实例 runner 使其不运行无标签作业。

要在不更改作业配置的情况下迁移作业,请修改托管 runner 标签,使其与您现有作业配置中使用的标签相匹配。

如果您看到您的作业卡住并显示错误消息 no runners that match all of the job's tags

  1. 检查您是否选择了正确的标签
  2. 确认是否已为您的项目或组启用了实例 runner

升级

Runner 版本升级需要短暂的停机时间。Runner 会在 GitLab Dedicated 租户的计划维护窗口期内进行升级。目前有一个 issue 正在致力于实现零停机升级。

定价

有关定价详情,请联系您的客户代表。

我们为 GitLab Dedicated 客户提供 30 天免费试用。试用版包括:

  • 小型、中型和大型 Linux x86-64 runner
  • 小型和中型 Linux Arm runner
  • 有限的自动扩缩容配置,最多支持 100 个并发作业