大型运行器 概述
除了标准 GitHub 托管的运行器之外,GitHub 还在 GitHub Team 和 GitHub Enterprise Cloud 计划中为客户提供一系列具有更多 RAM、CPU 和磁盘空间的托管虚拟机。 这些运行器由 GitHub 托管,并预安装了运行器应用程序和其他工具。
GitHub 提供 大型运行器,适用于 macOS、Ubuntu 或 Windows 操作系统,并且根据所使用的操作系统提供不同的功能。 有关详细信息,请参阅“大型运行器 的其他功能”。
关于 Ubuntu 和 Windows 大型运行器
适用于 Ubuntu 或 Windows 操作系统的 大型运行器 在你的组织或企业中进行配置。 添加 大型运行器 时,会通过精选的可用硬件规范和操作系统映像定义计算机类型。 GitHub 随后会创建此运行器的多个实例,这些实例可基于定义的自动缩放限制,纵向扩展和缩减以匹配组织的作业需求。 有关详细信息,请参阅“管理较大的运行器”。
Ubuntu 和 Windows 大型运行器 提供自动缩放功能,能够从特定范围为运行器分配静态 IP 地址。 还可以使用运行器组管理它们,这让你能够控制对 大型运行器 的访问。 有关详细信息,请参阅“大型运行器 的其他功能”。
关于 macOS 大型运行器s
通过将 YAML 工作流标签更新为所需的运行器映像,可以使用 macOS 操作系统的 大型运行器s。 若要在 macOS 大型运行器 上运行工作流,请更新密钥 runs-on
,以使用其中一个 GitHub 定义的 macOS 大型运行器 标签。 这种方式无需任何其他配置。 有关详细信息,请参阅“在较大的运行器上运行作业”。
以下计算机大小可用于 macOS macOS 大型运行器。
运行器大小 | 体系结构 | 处理器 (CPU) | 内存 (RAM) | 存储 (SSD) | YAML 工作流标签 |
---|---|---|---|---|---|
大 | Intel | 12 | 30 GB | 14 GB | macos-latest-large 、macos-12-large 、macos-13-large [Beta] |
XLarge | arm64 (M1) | 6 CPU 和 8 GPU | 14 GB | 14 GB | macos-latest-xlarge [Beta]、macos-13-xlarge [Beta] |
macOS 大型运行器 的限制
- GitHub 提供的所有操作均与 arm64 GitHub 托管运行器兼容。 但是,社区操作可能与 arm64 不兼容,需要在运行时手动安装。 有关详细信息,请参阅“在较大的运行器上运行作业”。
- 由于我们的虚拟机监控程序使用的 Apple 虚拟化框架的限制,arm64 运行器不支持嵌套虚拟化。
大型运行器 的其他功能
与标准的 GitHub 托管运行器相比,大型运行器 具有额外的功能,其可用性因 大型运行器 的操作系统而异。
操作系统 | Ubuntu | Windows | macOS |
---|---|---|---|
Android SDK 工具的硬件加速 | |||
静态 IP 地址 | |||
自动缩放 | |||
运行器组 |
这些功能可以通过以下方式增强 CI/CD 管道。
- Android SDK 工具的硬件加速使运行 Android 测试的速度更快,并且消耗的分钟数更少。 有关 Android 硬件加速的详细信息,请参阅 Android 开发人员文档中的为 Android Emulator 配置硬件加速。
- 从特定范围分配 大型运行器 的静态 IP 地址使你能够使用此范围来配置防火墙允许列表。 有关详细信息,请参阅“大型运行器 网络”。
- 自动缩放使 大型运行器 纵向扩展到你设置的最大限制,以便你的工作流可以并发运行。 有关详细信息,请参阅“自动缩放 大型运行器”。
- 运行器组允许你控制组织、存储库和工作流对 大型运行器 的访问。 有关详细信息,请参阅“控制对较大运行器的访问”。
有关每个运行器操作系统包含的工具的完整列表,请参阅 GitHub Actions 运行器映像存储库。
了解计费
注意:大型运行器 不符合在专用存储库上使用包含分钟数的条件。 对于专用和公共存储库,使用 大型运行器 时,始终按每分钟费率计费。
与标准 GitHub 托管的运行器相比,大型运行器 的计费方式有所不同。 大型运行器 仅根据在其上执行工作流的时间量按每分钟费率计费。 创建工作流未使用的 大型运行器 无需支付任何费用。有关详细信息,请参阅“关于 GitHub Actions 的计费”。
大型运行器 的计算机大小
处理器 (CPU) | 内存 (RAM) | 存储 (SSD) | 操作系统 (OS) |
---|---|---|---|
6 | 14 GB | 14 GB | macOS |
12 | 30 GB | 14 GB | macOS |
4 | 16 GB | 150 GB | Ubuntu |
8 | 32 GB | 300 GB | Ubuntu、Windows |
16 | 64 GB | 600 GB | Ubuntu、Windows |
32 | 128 GB | 1200 GB | Ubuntu、Windows |
64 | 256 GB | 2040 GB | Ubuntu、Windows |
关于运行器组
注意: 只有具有 Linux 或 Windows 操作系统的 大型运行器 才能分配给运行器组。
运行器组使管理员能够控制对组织和企业级运行器的访问。 通过运行器组,你可以收集运行器集,并围绕它们创建安全边界。 随后可以确定允许哪些组织或存储库在这些计算机集上运行作业。 在 大型运行器 部署过程中,运行器可以添加到现有组,否则会加入默认组。 可以按照“控制对较大运行器的访问”中的步骤创建组。
大型运行器 体系结构概述
注意: 此体系结构关系图仅适用于具有 Linux 或 Windows 操作系统的 大型运行器。
大型运行器 在组织级别进行管理,它们被安排到可以包含运行器的多个实例的组中。 它们还可以在企业级别进行创建,并与层次结构中的组织共享。 创建组后,可向组添加运行器并更新工作流,将组名或分配给 大型运行器 的标签作为目标。 还可以控制允许哪些存储库将作业发送到组进行处理。 有关组的详细信息,请参阅“控制对较大运行器的访问”。
在下图中,使用自定义硬件和操作系统配置定义了名为 ubuntu-20.04-16core
的托管运行器类别。
- 此运行器的实例会自动创建并添加到名为
grp-ubuntu-20.04-16core
的组。 - 运行器已分配有标签
ubuntu-20.04-16core
。 - 工作流作业在其
runs-on
键中使用ubuntu-20.04-16core
标签来指示执行作业所需的运行器类型。 - GitHub Actions 会检查运行器组,以查看是否授权存储库将作业发送到运行器。
- 作业在
ubuntu-20.04-16core
运行器的下一个可用实例上运行。
大型运行器 的自动缩放
注意: 自动缩放仅适用于 Linux 或 Windows 操作系统下的 大型运行器。
大型运行器 可以自动缩放以满足你的需求。 可以预配计算机,以便在提交作业进行处理时运行指定的最大作业数。 每台计算机一次只处理一个作业,因此这些设置实际上确定可以并发运行的作业数。
可以配置最大作业并发,这样就可以通过设置可以使用此集运行的最大并行作业数来控制成本。 此处的较高值可帮助避免由于并行而阻止工作流。 有关详细信息,请参阅“管理较大的运行器”。
大型运行器 的网络
注意: 向运行器分配静态 IP 地址仅适用于具有 Linux 或 Windows 操作系统的 大型运行器。
默认情况下,大型运行器 会接收为每个作业运行而更改的动态 IP 地址。 (可选)GitHub Enterprise Cloud 客户可以将其 大型运行器 配置为从 GitHub 的 IP 地址池接收静态 IP 地址。 有关详细信息,请参阅“关于 GitHub 的 IP 地址”。
启用后,大型运行器的实例会从对运行器具有唯一性的特定范围接收 IP 地址,让你能够使用此范围来配置防火墙允许列表。 在所有大型运行器中,最多可以使用 10 个具有静态 IP 地址范围的大型运行器。 有关详细信息,请参阅“管理较大的运行器”。
如果要使用 10 个以上具有静态 IP 地址范围的大型运行器,请联系 GitHub 支持。
注意:如果运行器未使用的时间超过 30 天,则其 IP 地址范围会自动移除,无法恢复。