Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

使用较大运行器

GitHub 提供具有更多 RAM 和 CPU 的较大运行器。

larger runner 功能目前对使用 GitHub Team 或 GitHub Enterprise Cloud 计划的组织和企业为 beta 版本,可能会更改。 若要请求访问 beta 版本,请访问注册页

larger runner 概述

除了 标准 GitHub 托管的运行器之外,GitHub 还在 GitHub Team 和 GitHub Enterprise Cloud 计划中为客户提供一系列具有更多 RAM 和 CPU 的 larger runner。 这些运行器由 GitHub 托管,并预安装了运行器应用程序和其他工具。

为组织启用larger runner时,将自动为你创建一个默认运行器组,其中包含四个预配置的larger runner。

向组织添加 larger runner 时,会通过精选的可用硬件规范和操作系统映像定义计算机类型。 GitHub 随后会创建此运行器的多个实例,这些实例可基于定义的自动缩放限制,纵向扩展和缩减以匹配组织的作业需求。

larger runner 的计算机规格

大小 (vcpu)内存 (GB)存储 (SSD)
4 核16 RAM150 GB
8 核32 RAM300 GB
16 核64 RAM600 GB
32 个核心128 RAM1200 GB
64 个核心256 RAM2040 GB

larger runner 体系结构概述

larger runner 在组织级别进行管理,它们被安排为可以包含运行器的多个实例的各个组。 它们还可以在企业级别进行创建,并与层次结构中的组织共享。 创建组后,可向组添加运行器并更新工作流,将组名或分配给 larger runner 的标签作为目标。 还可以控制允许哪些存储库将作业发送到组进行处理。 有关组的详细信息,请参阅“控制对 larger runner 的访问”。

在下图中,使用自定义硬件和操作系统配置定义了名为 ubuntu-20.04-16core 的托管运行器类别。

说明 larger runner 的关系图

  1. 此运行器的实例会自动创建并添加到名为 grp-ubuntu-20.04-16core 的组。
  2. 运行器已分配有标签 ubuntu-20.04-16core
  3. 工作流作业在其 runs-on 键中使用 ubuntu-20.04-16core 标签来指示执行作业所需的运行器类型。
  4. GitHub Actions 会检查运行器组,以查看是否授权存储库将作业发送到运行器。
  5. 作业在 ubuntu-20.04-16core 运行器的下一个可用实例上运行。

larger runner 的自动缩放

larger runner 可以配置为自动缩放以满足需求。 提交作业进行处理时,可以自动预配更多计算机以运行作业,直到达到预定义的最大限制。 每台计算机一次只处理一个作业,因此这些设置实际上确定可以并发运行的作业数。

在运行器部署过程中,可以配置“最大值”选项,这使你可以通过设置在此集中创建的最大并行计算机数来控制成本。 此处的较高值可帮助避免由于并行而阻止工作流。

larger runner 的网络

默认情况下,larger runner 会接收为每个作业运行而更改的动态 IP 地址。 (可选)GitHub Enterprise Cloud 客户可以将其 larger runner 配置为从 GitHub 的 IP 地址池接收静态 IP 地址。 启用后,larger runner 的实例会从对运行器唯一的范围接收地址,从而使你能够使用此范围配置防火墙允许列表。 在你所有的larger runner中,最多可以使用 10 个静态 IP 地址范围。

注意:如果运行器未使用的时间超过 30 天,则其 IP 地址范围会自动移除,无法恢复。

larger runner 的规划

创建运行器组

运行器组用于收集虚拟机集,并围绕它们创建安全边界。 随后可以确定允许哪些组织或存储库在这些计算机集上运行作业。 在 larger runner 部署过程中,运行器可以添加到现有组,否则会加入默认组。 可以按照“控制对 larger runner 的访问”中的步骤创建组。

了解计费

注意:larger runner不使用包含的权利分钟数,并且针对公共存储库不是免费的。

与标准 GitHub 托管的运行器相比,larger runner 的计费方式有所不同。 有关详细信息,请参阅“每分钟费率”。

将 larger runner 添加到企业

可以将 larger runner 添加到企业,在该企业中可以将它们分配给多个组织。 组织管理员随后可以控制哪些存储库可以使用运行器。 若要将 larger runner 添加到企业,你必须是组织所有者。

可以从可用选项列表中选择操作系统和硬件配置。 通过自动缩放部署此运行器的新实例时,它们会使用此处定义的相同操作系统和硬件配置。

还可以定义标识运行器的标签,即工作流如何能够将作业发送到运行器进行处理(使用 runs-on)。 新运行器会自动分配给默认组,也可以在运行器创建过程中选择运行器必须加入的组。 此外,可以在注册运行器后修改运行器组成员身份。 有关详细信息,请参阅“控制对 larger runner 的访问”。

  1. 在企业边栏中,单击 “策略”。 企业帐户边栏中的“策略”选项卡 1. 在“ 策略”下,单击“操作”。 1. 单击“运行器”选项卡。 1. 单击“新建运行器”,然后单击“ 新建 GitHub 托管的运行器” 。

  2. 完成配置新运行器所需的详细信息:

    • 名称:输入新运行器的名称。 为了便于识别,这应指示其硬件和操作配置,例如 ubuntu-20.04-16core
    • 运行器映像:从可用选项中选择操作系统。 选择操作系统后,便能够选择特定版本。
    • 运行器大小:从可用选项下拉列表中选择硬件配置。
    • 自动缩放:选择可随时处于活动状态的最大运行器数。
    • 运行器组:选择运行器所属的组。 此组会托管运行器的多个实例,因为它们会纵向扩展和缩减以满足需求。
    • 网络:仅适用于 GitHub Enterprise Cloud:选择是否将静态 IP 地址范围分配给 larger runner 的实例。 总共最多可以使用 10 个静态 IP 地址。
  3. 单击“创建运行器”。

  4. 若要允许组织访问 larger runner,请指定可以使用它的组织列表。 有关详细信息,请参阅“管理对运行器的访问”。

将 larger runner 添加到组织

可以将 larger runner 添加到组织,其中的组织管理员可以控制哪些存储库可以使用它。

可以从可用选项列表中选择操作系统和硬件配置。 通过自动缩放部署此运行器的新实例时,它们会使用此处定义的相同操作系统和硬件配置。

还可以定义标识运行器的标签,即工作流如何能够将作业发送到运行器进行处理(使用 runs-on)。 新运行器会自动分配给默认组,也可以在运行器创建过程中选择运行器必须加入的组。 此外,可以在注册运行器后修改运行器组成员身份。 有关详细信息,请参阅“控制对 larger runner 的访问”。

  1. 在 GitHub.com 上,导航到组织的主页。 1. 在组织名称下,单击“设置”。 组织设置按钮 1. 在左侧边栏中,单击“操作”,然后单击“运行器”。 1. 单击“新建运行器”,然后单击“ 新建 GitHub 托管的运行器” 。

  2. 完成配置新运行器所需的详细信息:

    • 名称:输入新运行器的名称。 为了便于识别,这应指示其硬件和操作配置,例如 ubuntu-20.04-16core
    • 运行器映像:从可用选项中选择操作系统。 选择操作系统后,便能够选择特定版本。
    • 运行器大小:从可用选项下拉列表中选择硬件配置。
    • 自动缩放:选择可随时处于活动状态的最大运行器数。
    • 运行器组:选择运行器所属的组。 此组会托管运行器的多个实例,因为它们会纵向扩展和缩减以满足需求。
    • 网络:仅适用于 GitHub Enterprise Cloud:选择是否将静态 IP 地址范围分配给 larger runner 的实例。 总共最多可以使用 10 个静态 IP 地址。
  3. 单击“创建运行器”。

  4. 若要允许存储库访问 larger runner,请将它们添加到可以使用它的存储库列表中。 有关详细信息,请参阅“管理对运行器的访问”。

在运行器上运行作业

定义了运行器类型后,可以更新工作流 YAML 文件,以将作业发送到新创建的运行器实例进行处理。 可使用运行器组或标签来定义作业的运行位置。

只有所有者或管理员帐户可查看运行器设置。 非管理用户可联系组织管理员,了解启用了哪些运行器。 组织管理员可创建新的运行器和运行器组,并配置权限来指定哪些存储库可访问运行器组。

使用组来控制作业的运行位置

在此示例中,Ubuntu 16 核心运行器已添加到名为 ubuntu-runners 的组中。 runs-on 键将作业发送到 ubuntu-runners 组中的任何可用运行器:

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on: 
      group: ubuntu-runners
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

使用标签来控制作业的运行位置

在此示例中,使用 Ubuntu 16 核运行器填充运行器组,这些运行器也分配有标签 ubuntu-20.04-16coreruns-on 键将作业发送至具有匹配标签的任何可用运行器:

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      labels: ubuntu-20.04-16core
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

使用组和组来控制作业的运行位置

组合组和标签时,运行器必须满足这两项要求才能运行作业。

在此示例中,名为 ubuntu-runners 的运行器组使用 Ubuntu 16 核心运行器(分配了标签 ubuntu-20.04-16core)进行填充。 runs-on 键将 grouplabels 组合在一起,以便将作业路由到具有匹配标签的组内的任何可用运行器:

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      group: ubuntu-runners
      labels: ubuntu-20.04-16core
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

使用多个标签

可指定要使作业在运行器上运行而需要匹配的多个标签。 运行器将需要匹配所有标签才能运行该作业。

在此示例中,运行器将需要匹配全部三个标签才能运行作业:

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      labels: [ ubuntu-20.04-16core, gpu, qa ]
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

管理对运行器的访问

注意:必须先为运行器组配置权限,然后工作流才能将作业发送到 larger runner。 有关详细信息,请参阅下列各节。

运行器组用于控制哪些存储库可以在 larger runner 上运行作业。 必须从管理层次结构的各个级别授予对组的访问权限,具体取决于定义 larger runner 的位置:

  • 企业级别的运行器:配置运行器组以授予对所有所需组织的访问权限。 此外,对于每个组织,必须配置组以指定允许访问的存储库。
  • 组织级别的运行器:通过指定允许访问的存储库来配置运行器组。

例如,下图包含一个企业级别的名为 grp-ubuntu-20.04-16core 的运行器组。 在名为 octo-repo 的存储库可以使用该组中的运行器之前,必须先在企业级别配置该组以允许从 octo-org 组织进行访问;随后必须在组织级别配置该组以允许从 octo-repo 进行访问:

说明 larger runner 组的关系图

允许存储库访问运行器组

此过程演示如何在企业和组织级别配置组权限:

  1. 导航到运行器组所在的存储库或组织的主页。
  2. 单击“设置”。
  3. 在左侧边栏中,单击“操作”,然后单击“运行器组” 。 1. 在组列表中,单击要配置的运行器组。
  • 对于企业中的运行器组:在“组织访问”下,修改可以访问运行器组的组织。
  • 对于组织中的运行器组:在“存储库访问”下,修改可以访问运行器组的存储库。

警告

如果使用固定 IP 范围,建议仅对专用存储库使用 larger runner。 公共存储库的分支可能会通过创建在工作流中执行代码的拉取请求,在 larger runner 上运行危险代码。

有关详细信息,请参阅“控制对 larger runner 的访问”。