更大的运行器概述
GitHub Team 和 GitHub Enterprise Cloud 计划的客户可以选择一系列托管虚拟机,这些虚拟机比标准的 GitHub 托管运行器拥有更多资源。这些机器被称为“更大的运行器”。它们提供以下高级功能
- 更多 RAM、CPU 和磁盘空间
- 静态 IP 地址
- Azure 专用网络
- 能够对运行器进行分组
- 自动缩放以支持并发工作流
- 支持 GPU 和 ARM 的运行器
这些更大的运行器由 GitHub 托管,并预安装了运行器应用程序和其他工具。
GitHub 提供具有 macOS、Ubuntu 或 Windows 操作系统的更大的运行器,并且根据您使用的操作系统,可以使用不同的功能和大小。有关更多信息,请参阅“更大的运行器的附加功能”。
关于 Ubuntu 和 Windows 更大的运行器
具有 Ubuntu 或 Windows 操作系统的更大的运行器在您的组织或企业中进行配置。添加更大的运行器时,您将根据可用的硬件规格和操作系统映像选择一种机器类型。然后,GitHub 将创建此运行器的多个实例,这些实例会根据您定义的自动缩放限制向上和向下扩展以匹配组织的工作负载需求。有关更多信息,请参阅“管理更大的运行器”。
Ubuntu 和 Windows 更大的运行器提供自动缩放功能以及从特定范围分配运行器静态 IP 地址的功能。它们还可以使用运行器组进行管理,这使您可以控制对更大运行器的访问权限。有关更多信息,请参阅“更大的运行器的附加功能”。
关于 macOS 更大的运行器
具有 macOS 操作系统的更大的运行器通过将 YAML 工作流标签更新为所需的运行器映像来使用。要在 macOS 更大的运行器上运行工作流,请更新runs-on
键以使用 GitHub 定义的 macOS 更大的运行器标签之一。无需其他配置。有关更多信息,请参阅“在更大的运行器上运行作业”。
以下机器大小可用于 macOS 更大的运行器。
运行器大小 | 架构 | 处理器 (CPU) | 内存 (RAM) | 存储 (SSD) | 工作流标签 |
---|---|---|---|---|---|
大型 | 英特尔 | 12 | 30 GB | 14 GB | macos-latest-large 、macos-12-large 、macos-13-large 、macos-14-large [最新]、macos-15-large [公开预览] |
超大型 | arm64 (M1) | 6 (+ 8 GPU 硬件加速) | 14 GB | 14 GB | macos-latest-xlarge 、macos-13-xlarge 、macos-14-xlarge [最新]、macos-15-xlarge [公开预览] |
macOS 更大的运行器的限制
- GitHub 提供的所有操作都与 arm64 GitHub 托管运行器兼容。但是,社区操作可能与 arm64 不兼容,需要在运行时手动安装。
- 由于 Apple 的虚拟化框架的限制,不支持嵌套虚拟化和 Metal Performance Shaders (MPS)。
- 目前,macOS 更大的运行器不支持 Azure 专用网络和分配静态 IP 等网络功能。
- arm64 macOS 运行器没有分配静态 UUID/UDID,因为 Apple 不支持此功能。但是,Intel MacOS 运行器分配了静态 UDID,具体为
4203018E-580F-C1B5-9525-B745CECA79EB
。如果您在计划测试构建的同一主机上构建和签名,则可以使用开发配置文件进行签名。如果您确实需要静态 UDID,则可以使用 Intel 运行器并将它们的 UDID 添加到您的 Apple 开发者帐户。
更大的运行器的附加功能
与标准的 GitHub 托管运行器相比,更大的运行器具有其他功能,并且其可用性因更大的运行器的操作系统而异。
Ubuntu | Windows | macOS | |
---|---|---|---|
静态 IP 地址 | |||
Azure 专用网络 | |||
自动缩放 | |||
运行器组 |
这些功能可以通过以下方式增强您的 CI/CD 管道。
- 从特定范围分配更大的运行器静态 IP 地址使您可以使用此范围配置防火墙允许列表。有关更多信息,请参阅“更大的运行器的网络”。
- 自动缩放使更大的运行器能够扩展到您设置的最大限制,以便您的工作流可以并发运行。有关更多信息,请参阅“自动缩放更大的运行器”。
- 运行器组允许您控制组织、存储库和工作流对更大运行器的访问权限。有关更多信息,请参阅“控制对更大运行器的访问权限”。
运行器映像
更大的运行器在虚拟机 (VM) 上运行,并且 GitHub 在 VM 创建过程中在此机器上安装虚拟硬盘 (VHD)。您可以选择在运行器上安装不同的 VM 映像。
GitHub 拥有的映像:这些映像由 GitHub 维护,可用于 Linux x64、Windows x64 和 macOS (x64 和 arm) 运行器。有关这些映像的更多信息以及每个运行器操作系统的包含工具的完整列表,请参阅GitHub Actions 运行器映像存储库。
合作伙伴映像:合作伙伴映像不受 GitHub 管理,而是从 Azure 市场提取。有关 Windows 11 桌面映像的更多信息,请参阅Microsoft Windows 11 桌面。有关与 GPU 运行器兼容的映像的更多信息,请参阅NVIDIA GPU 优化 VMI和数据科学虚拟机 - Windows 2019。有关 ARM 供电运行器的映像的更多信息,请参阅actions/partner-runner-images
存储库。这也是提供有关第三方映像的反馈或报告问题的场所。
了解计费
注意
更大的运行器不符合在私有存储库中使用包含分钟数的条件。对于私有和公共存储库,当使用更大的运行器时,它们始终将按分钟计费。
与标准的 GitHub 托管运行器相比,更大的运行器的计费方式有所不同。更大的运行器仅按工作流在其上执行的时间按分钟计费。与创建未使用工作流的更大的运行器无关的费用。有关更多信息,请参阅“关于 GitHub Actions 的计费”。
更大的运行器的机器大小
您可以为更大的运行器选择多种规格。
通用更大的运行器的规格
CPU | 内存 (RAM) | 存储 (SSD) | 架构 | 操作系统 (OS) |
---|---|---|---|---|
6 | 14 GB | 14 GB | arm64 | macOS |
12 | 30 GB | 14 GB | x64 | macOS |
2 | 8 GB | 75 GB | x64、arm64 | Ubuntu |
4 | 16 GB | 150 GB | x64、arm64 | Ubuntu、Windows |
8 | 32 GB | 300 GB | x64、arm64 | Ubuntu、Windows |
16 | 64 GB | 600 GB | x64、arm64 | Ubuntu、Windows |
32 | 128 GB | 1200 GB | x64、arm64 | Ubuntu、Windows |
64 | 208 GB | 2040 GB | arm64 | Ubuntu、Windows |
64 | 256 GB | 2040 GB | x64 | Ubuntu、Windows |
注意
4 核虚拟 CPU 的 Windows 运行器仅适用于 Windows 11 桌面映像。
GPU 更大的运行器的规格
CPU | GPU | GPU 卡 | 内存 (RAM) | GPU 内存 (VRAM) | 存储 (SSD) | 操作系统 (OS) |
---|---|---|---|---|---|---|
4 | 1 | Tesla T4 | 28 GB | 16 GB | 176 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 操作系统的更大的运行器。
更大的运行器可以自动扩展以满足您的需求。当提交作业以进行处理时,您可以预配机器以运行指定的最大作业数。每台机器一次只处理一个作业,因此这些设置有效地决定了可以并发运行的作业数。
您可以配置最大作业并发性,这允许您通过设置可以使用此集运行的最大并行作业数来控制成本。此处较高的值可以帮助避免由于并行性而导致工作流被阻止。有关如何设置限制的更多信息,请参阅“管理更大的运行器”。有关 GitHub 托管运行器的最大自动缩放限制的更多信息,请参阅“使用限制、计费和管理”。
为更大的运行器分配静态 IP 地址
您只能为使用 Linux 或 Windows 操作系统的较大型运行器分配静态 IP 地址。
分配的静态 IP 地址均可用,并且不采用 CIDR 表示法。
GitHub 托管运行器的私有网络不支持为较大型运行器分配静态 IP 地址。有关 GitHub 托管运行器的私有网络的更多信息,请参阅“企业中的 GitHub 托管运行器的 Azure 私有网络简介”。
较大型运行器的网络
默认情况下,较大型运行器会接收一个动态 IP 地址,该地址在每次作业运行时都会更改。可选地,GitHub Enterprise Cloud 客户可以将其较大型运行器配置为从 GitHub 的 IP 地址池接收静态 IP 地址。有关更多信息,请参阅“关于 GitHub 的 IP 地址”。
启用后,较大型运行器的实例将从特定范围的 IP 地址中接收 IP 地址,这些地址对于运行器是唯一的,使您可以使用这些范围配置防火墙允许列表。您最多可以在所有较大型运行器中使用 10 个具有静态 IP 地址范围的较大型运行器。有关更多信息,请参阅“管理较大型运行器”。
如果您想使用超过 10 个具有静态 IP 地址范围的较大型运行器,请通过 GitHub 支持门户 联系我们。
注意
如果运行器超过 30 天未使用,其 IP 地址范围将自动删除,并且无法恢复。