本页面介绍了如何请求 GPU 来加速 Google Kubernetes Engine (GKE) Autopilot 工作负载中的任务。本页面还介绍了 Autopilot 如何运行 GPU、价格模式如何根据 GKE 版本而变化、如何设置 Pod 资源请求和限制,以及如何监控 GPU 工作负载。
本页面适用于平台管理员和运维人员,以及希望为运行机器学习 (ML) 训练或推理等任务的工作负载请求 GPU 的数据和 AI 专家。如需详细了解我们在 Google Cloud 内容中提及的常见角色、职责和示例任务,请参阅常见的 GKE 用户角色和任务。
在继续操作之前,请确保您熟悉以下概念:
在 Pod 中选择加速器
Autopilot 使用专用加速器计算类来运行 GPU Pod。使用此计算类,GKE 会在 GPU 节点上放置 Pod,为 Pod 提供对虚拟机 (VM) 高级功能的访问权限。如需在 GPU 工作负载中使用此类,请根据 GKE 版本执行以下操作之一:
- 1.29.4-gke.1427000 版及更高版本:在工作负载清单中请求 GPU。您还可以使用分时等 GPU 共享功能。GKE 不会修改工作负载清单来为加速器类添加节点选择器或注解。
- 1.29 版(但不含该版本)到 1.29.4-gke.142700 版:在 Pod 清单中指定
cloud.google.com/compute-class: Accelerator节点选择器并请求 GPU。如果指定此节点选择器,您还可以使用分时等 GPU 共享功能。 - 1.28.9-gke.1069000 版(但不含该版本)到 1.29 版:在 Pod 清单中指定
cloud.google.com/compute-class: Accelerator节点选择器以及 GPU 选择器。如果指定此节点选择器,您还可以使用分时等 GPU 共享功能。
1.28.9-gke.1069000 之前的版本不支持加速器计算类。这些版本中的 GPU Pod 的处理方式与其他 Autopilot Pod 类似,并且您需要为资源请求付费。有关详情,请参阅价格。
加速器与 GKE 功能的兼容性
下表显示了在 GKE Autopilot 中选择加速器的每种方法的兼容 GKE 功能:
已选择 Accelerator 计算类 |
与 GKE 功能的兼容性 |
|---|---|
|
|
价格
下表介绍了 GKE 使用的结算模式如何取决于集群的 GKE 版本。如需了解 GKE Autopilot 结算模式的说明,请参阅 Autopilot 价格。
| GKE 版本 | 价格 |
|---|---|
| 1.29.4-gke.1427000 及更高版本 | 基于节点的结算模式。所有 GPU Pod 都使用加速器计算类。您需要为运行 GPU 工作负载的 Compute Engine 硬件支付费用,还需要支付 Autopilot 附加费以实现节点管理和可伸缩性。如需了解详情,请参阅 Autopilot 模式价格。 |
| 1.29 版(但不含该版本)到 1.29.4-gke.1427000 版 | 结算模式取决于您指定的节点选择器,如下所示:
只有在明确指定 如需了解详情,请参阅 Kubernetes Engine 价格中的“具有特定硬件要求的 Pod”部分。 |
| 1.28.6-gke.1095000 版(但不含该版本)到 1.29 版 | 基于节点的结算模式,无论您是否在 Pod 清单中指定加速器计算类。 只有在明确指定 如需了解详情,请参阅 Kubernetes Engine 价格中的“具有特定硬件要求的 Pod”部分。 |
| 1.28.6-gke.1095000 之前的版本 | 基于 Pod 的结算模式。您需要根据 GPU Pod 资源请求付费。如需了解详情,请参阅 Kubernetes Engine 价格中的“具有特定硬件要求的 Pod”部分。 |
请注意以下有关 Autopilot GPU 的价格注意事项:
- 所有 A100 (80GB) GPU 节点都根据 GPU 的数量使用固定大小的节点启动磁盘的本地 SSD。您需要为挂接的本地 SSD 单独付费。这价格不适用于 A100 (40GB) GPU。
- GKE Sandbox 价格与默认 Autopilot 价格相同。如需详细了解如何对加速器工作负载进行沙盒化处理,请参阅 GKE Sandbox 和 GKE Sandbox 使用入门。
- 如果您在 Autopilot 模式下使用 NVIDIA RTX PRO 6000 GPU(G4 机器系列),自 2026 年 10 月 1 日起,GKE 除了会收取底层硬件的现有适用费用外,还会收取 Autopilot 节点管理附加费。在此日期之前和之后,这些现有费用仍会继续收取。如需详细了解在 Autopilot 工作负载中请求特定硬件时,结算方式有何不同,请参阅选择特定硬件的 Autopilot 工作负载。
准备工作
在开始之前,请确保您已执行以下任务:
- 启用 Google Kubernetes Engine API。 启用 Google Kubernetes Engine API
- 如果您要使用 Google Cloud CLI 执行此任务,请安装并初始化 gcloud CLI。如果您之前安装了 gcloud CLI,请通过运行
gcloud components update命令来获取最新版本。较早版本的 gcloud CLI 可能不支持运行本文档中的命令。
确保您拥有运行以下版本之一的 GKE Autopilot 集群,以便使用以下 GPU 或功能:
- NVIDIA B200 (180 GB) GPU:1.32.2-gke.1422000 或更高版本
- NVIDIA H200 (141GB) GPU:1.31.4-gke.1183000 或更高版本
- NVIDIA H100 Mega (80GB) GPU:1.28.9-gke.1250000 或更高版本,以及 1.29.4-gke.1542000 或更高版本
- NVIDIA H100 (80GB) GPU:1.28.6-gke.1369000 或更高版本,以及 1.29.1-gke.1575000 或更高版本
- NVIDIA RTX PRO 6000 GPU:
- 具有一个或多个 GPU 的机器类型:1.34.1-gke.1829001 或更高版本
- GPU 数量少于 1 个的机器类型:1.35.2-gke.1485000 或更高版本
- 每个虚拟机多个 GPU Pod:1.29.2-gke.1355000 或更高版本
- 其他 GPU:所有受支持的版本
- 确保您在项目中拥有足够的 GPU 配额。 您要在每个区域中创建的 GPU 模型必须具有足够的 Compute Engine GPU 配额。如果您需要额外的 GPU 配额,请申请调整配额。
如果您想使用 NVIDIA RTX PRO 6000 GPU 数量少于 1 个的 G4 机器类型,除了要满足上述版本要求之外,还必须执行以下操作:
- 明确请求 GPU 数量少于 1 个的 G4 机器类型。
- 如果您的集群运行的 GKE 版本低于 1.36,请准备工作负载。
限制
- GKE 1.29.3-gke.1093000 及更高版本中的 Autopilot 提供分时 GPU 和多实例 GPU。
- GPU 可用性取决于 Autopilot 集群的 Google Cloud 区域和您的 GPU 配额。如需按区域或可用区查找 GPU 型号,请参阅 GPU 区域和可用区可用性。
- 对于 NVIDIA A100 (80GB) GPU,无论 Pod 是否使用该容量,您都需要为附加到节点的本地 SSD 支付固定价格。
- 对于 1.29.2-gke.1355000 之前的 GKE 版本,如果您明确为 Pod 请求特定的现有 GPU 节点,则 Pod 必须使用该节点上的所有 GPU 资源。例如,如果现有节点具有 8 个 GPU 并且 Pod 的容器请求总共 4 个 GPU,则 Autopilot 会拒绝 Pod。
- 对于 GKE 1.29.2-gke.1355000 或更高版本,如果您希望在单个节点中容纳多个 GPU pod,则针对这些 pod 的 GPU 请求总和必须小于或等于挂接到该节点的 GPU 资源数量。例如,
gke-accelerator-count为 4 的节点最多可以容纳四个 Pod,每个 Pod 请求一个 GPU。
在以下情况下,将多个 Pod 放置在单个 GPU 节点上非常有用:
- 您为大型加速器机器类型预留了容量并运行单 GPU 工作负载,因此在每个节点部署一个 Pod 会浪费该机器上的其他 GPU
- 您的 GPU 工作负载必须在同一主机上运行
在这些情况下,我们建议您确保节点上的 Pod GPU 资源请求总和等于挂接到节点的 GPU 数量,从而在该节点上使用所有 GPU。
在容器中请求 GPU
如需为容器请求 GPU 资源,请将以下字段添加到 Pod 规范中。
根据您的工作负载要求,您可以酌情省略 cloud.google.com/gke-accelerator-count 选择器。
apiVersion: v1
kind: Pod
metadata:
name: my-gpu-pod
spec:
# Optional: Use GKE Sandbox
# runtimeClassName: gvisor
nodeSelector:
cloud.google.com/gke-accelerator: GPU_TYPE
cloud.google.com/gke-accelerator-count: "GPU_COUNT"
containers:
- name: my-gpu-container
image: nvidia/cuda:11.0.3-runtime-ubuntu20.04
command: ["/bin/bash", "-c", "--"]
args: ["while true; do sleep 600; done;"]
resources:
limits:
nvidia.com/gpu: GPU_QUANTITY
替换以下内容:
GPU_TYPE:GPU 硬件的类型。允许的值包括:nvidia-gb200:NVIDIA GB200(预览版)nvidia-b200:NVIDIA B200 (180GB)nvidia-h200-141gb:NVIDIA H200 (141GB)nvidia-h100-mega-80gb:NVIDIA H100 Mega (80GB)nvidia-h100-80gb:NVIDIA H100 (80GB)nvidia-a100-80gb:NVIDIA A100 (80GB)nvidia-tesla-a100:NVIDIA A100 (40GB)nvidia-rtx-pro-6000:NVIDIA RTX PRO 6000nvidia-l4:NVIDIA L4nvidia-tesla-t4:NVIDIA T4
nvidia-gb200:NVIDIA GB200(预览版)nvidia-b200:NVIDIA B200 (180GB)(预览版)nvidia-h200-141gb:NVIDIA H200 (141GB)(预览版)nvidia-h100-mega-80gb:NVIDIA H100 Mega (80GB)nvidia-h100-80gb:NVIDIA H100 (80GB)nvidia-a100-80gb:NVIDIA A100 (80GB)nvidia-tesla-a100:NVIDIA A100 (40GB)nvidia-rtx-pro-6000:NVIDIA RTX PRO 6000(预览版)(除了 GPU 数量少于 1 的 G4 机器类型)nvidia-l4:NVIDIA L4nvidia-tesla-t4:NVIDIA T4
GPU_COUNT:可用于挂接到节点的 GPU 总数。必须大于或等于GPU_QUANTITY以及您选择的 GPU 类型支持的 GPU 数量。如果省略此 nodeSelector,Autopilot 会在每个 GPU 节点上放置一个 Pod。GPU_QUANTITY:要分配给容器的 GPU 数量。必须小于或等于GPU_COUNT以及您选择的 GPU 类型支持的 GPU 数量。可选
runtimeClassname: gvisor:此设置可让您在 GKE Sandbox 中运行此 Pod。如需使用,请取消对这一行的注释。如需了解详情,请参阅 GKE Sandbox。
如需详细了解在 Autopilot 模式下使用加速器的计费方式,请参阅价格部分。
您必须在 Pod 规范中同时指定 GPU 类型和 GPU 数量。如果您省略其中任一值,Autopilot 将拒绝您的 Pod。
部署此清单时,Autopilot 会自动为节点 GKE 版本安装默认 NVIDIA 驱动程序。在 1.29.2-gke.1108000 及更高版本中,您可以选择向清单中添加以下节点选择器,以选择为该 GKE 版本安装最新的驱动程序版本:
spec:
nodeSelector:
cloud.google.com/gke-gpu-driver-version: "DRIVER_VERSION"
将 DRIVER_VERSION 替换为以下某个值:
default- 适用于节点 GKE 版本的默认稳定驱动程序。如果您在清单中省略 nodeSelector,则这是默认选项。latest- 适用于节点 GKE 版本的最新可用驱动程序版本。
为 Autopilot GPU Pod 请求 CPU 和内存
定义 GPU Pod 时,您还应请求 CPU 和内存资源,以便使容器按预期运行。Autopilot 根据 GPU 类型和数量强制执行特定的 CPU 和内存最小值、最大值和默认值。如果在单个节点上运行多个 GPU Pod,请指定 CPU 和内存,否则默认将使用该节点的全部容量。如需了解详情,请参阅 Autopilot 中的资源请求。
您的 Pod 规范应类似于以下示例,该示例请求四个 T4 GPU:
apiVersion: v1
kind: Pod
metadata:
name: t4-pod
spec:
# Optional: Use GKE Sandbox
# runtimeClassName: gvisor
nodeSelector:
cloud.google.com/gke-accelerator: "nvidia-tesla-t4"
containers:
- name: t4-container-1
image: nvidia/cuda:11.0.3-runtime-ubuntu20.04