创建使用 G2 或 G4 的 AI 优化型 GKE 集群

本文档介绍了如何创建 AI 优化型 Google Kubernetes Engine (GKE) 集群,该集群使用 G2 (NVIDIA L4) 或 G4 (NVIDIA RTX PRO 6000) 加速器优化型机器系列来支持人工智能 (AI) 和机器学习 (ML) 工作负载。G2 和 G4 是通用 GPU 机器系列,可提供独立的计算资源,专为中小型推理和图形密集型应用等主流 AI 任务而设计。除了单 GPU 和多 GPU 机器类型之外,G4 机器系列还支持在 GPU 数量少于 1 个的机器类型上使用虚拟 GPU (vGPU):

  • g4-standard-6(GPU 的八分之一)
  • g4-standard-12(四分之一 GPU)
  • g4-standard-24(半个 GPU)

GKE 提供了一个统一的平台,可为组织运行各种工作负载,从而减轻管理多个平台的运营负担。

如需创建搭载 G2 或 G4 的 AI 优化型 GKE 集群,请完成以下步骤:

  1. 创建 GKE 环境
  2. 连接到集群
  3. 配置 Pod 清单

准备工作

在开始之前,请确保您已执行以下任务:

  • 启用 Google Kubernetes Engine API。
  • 启用 Google Kubernetes Engine API
  • 如果您要使用 Google Cloud CLI 执行此任务,请安装并初始化 gcloud CLI。如果您之前安装了 gcloud CLI,请通过运行 gcloud components update 命令来获取最新版本。较早版本的 gcloud CLI 可能不支持运行本文档中的命令。

所需的角色

如需获得创建和管理 GKE 集群所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

选择使用选项并获取容量

  1. 选择使用选项。您可以根据自己希望如何获取和使用 GPU 资源来做出选择。如需了解详情,请参阅选择消费方案。

    对于 GKE,在选择消费选项时,请考虑以下其他信息:

  2. 获取容量。了解如何为您的消费选项获取容量。

要求

如需创建使用 G2 或 G4 的 AI 优化型 GKE 集群,请确保满足以下要求:

  • GKE 版本:G4(NVIDIA RTX PRO 6000)机器需要满足以下最低 GKE 版本要求:
    • 标准模式:
      • 具有一个或多个 GPU 的机器类型:1.34.0-gke.1662000 或更高版本
      • GPU 数量不足 1 个的机器类型(g4-standard-6、g4-standard-12 和 g4-standard-24):
        • 1.35: 1.35.8-gke.1518000 或更高版本
        • 1.36 或更高版本: 1.36.4-gke.1082000 或更高版本
    • Autopilot 模式:
      • 具有一个或多个 GPU 的机器类型:1.34.1-gke.1829001 或更高版本
      • GPU 数量不足 1 个的机器类型(g4-standard-6、g4-standard-12 和 g4-standard-24):
        • 1.35: 1.35.8-gke.1518000 或更高版本
        • 1.36 或更高版本: 1.36.4-gke.1082000 或更高版本
  • GPU 驱动程序:
    • G2 (NVIDIA L4) 节点必须使用 535 或更高版本的 NVIDIA 驱动程序。
    • G4 (NVIDIA RTX PRO 6000) 节点必须使用 580 或更高版本的 NVIDIA 驱动程序。

限制

以下限制适用于作为通用 GPU 机器系列的 G2 和 G4:

  • 本地 SSD:G2 和 G4 机器类型默认不包含本地 SSD 磁盘。如有需要,您必须手动附加这些文件。g4-standard-6(八分之一 GPU)机器类型不支持本地 SSD。
  • NCCL Fast Socket:您无法在 GKE 上将 NCCL Fast Socket 与 G2 或 G4 机器搭配使用。虽然 G2 和 G4 机器支持多节点通信,但它们使用标准 VPC 网络。对于需要最大网络吞吐量的大规模分布式训练,我们建议使用集群 GPU 机器系列,例如 A3 High 或 A3 Mega(使用 GPUDirect TCPX)或 A3 Ultra 和 A4(使用 GPUDirect RDMA)。
  • 具有不到一个 GPU 的 G4 机器类型:对于 g4-standard-6、g4-standard-12 和 g4-standard-24:

创建 GKE 环境

您可以在 Autopilot 或标准模式下创建集群。

Autopilot

如需创建 Autopilot 集群,请运行以下命令:

gcloud container clusters create-auto CLUSTER_NAME \
    --region=REGION

替换以下内容:

  • CLUSTER_NAME:您的集群的名称。
  • REGION:集群所在的区域。

标准

创建 Standard 集群和 GPU 节点池:

  1. 如需创建 Standard 集群,请运行以下命令:

    gcloud container clusters create CLUSTER_NAME \
        --region=REGION \
        --enable-ip-alias
    

    替换以下内容:

    • CLUSTER_NAME:您的集群的名称。
    • REGION:集群所在的区域。
  2. 创建节点池。 创建集群后,您可以添加具有 G2 或 G4 的节点池。对于使用 G2 (L4) 或 G4 (RTX PRO 6000) 的多节点工作负载,我们建议使用紧凑布置政策,以最大限度地缩短节点之间的网络延迟。

    如需创建节点池,请使用以下命令:

    G2 (NVIDIA L4)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-l4,count=AMOUNT,gpu-driver-version=LATEST \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    G4 (NVIDIA RTX PRO 6000)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-rtx-pro-6000,count=AMOUNT,gpu-driver-version=LATEST \
        --disk-type=hyperdisk-balanced \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    G4 虚拟工作站 (vWS)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-rtx-pro-6000-vws,count=AMOUNT,gpu-driver-version=LATEST \
        --disk-type=hyperdisk-balanced \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    替换以下内容:

    • NODE_POOL_NAME:节点池的名称。
    • CLUSTER_NAME:您的集群的名称。
    • REGION:集群所在的区域。
    • ZONE:您所在区域内提供所请求 GPU 的一个或多个可用区,例如 us-central1-a。使用紧凑放置时必须设置此参数。
    • MACHINE_TYPE:节点的机器类型,例如,g2-standard-4(适用于 G2 机器)、g4-standard-48(适用于单 GPU G4 机器)或 g4-standard-6、g4-standard-12 或 g4-standard-24(适用于 GPU 不足一个的 G4 机器类型,采用 nvidia-rtx-pro-6000 加速器类型)。
    • AMOUNT:要挂接到每个节点的 GPU 数量。 如果您使用的 G4 机器类型具有不到一个 GPU(g4-standard-6、g4-standard-12 或 g4-standard-24)或 g4-standard-48(一个 GPU),则必须将 AMOUNT 设置为 1。
    • LOCAL_SSD_COUNT:每个节点上预配的本地 SSD 卷的数量。如果您使用 g4-standard-6 机器类型,请省略 --local-ssd-count 标志,因为 g4-standard-6 不支持本地 SSD。

连接到集群

连接到集群,以便运行后续部分中的 kubectl 命令:

gcloud container clusters get-credentials CLUSTER_NAME \
    --region=REGION

替换以下内容:

  • CLUSTER_NAME:您的集群的名称。
  • REGION:集群所在的区域。

如需了解详情,请参阅安装 kubectl 并配置集群访问权限。

配置 Pod 清单(仅限 Autopilot)

如果您创建了 Autopilot 集群,则必须在 Pod 清单中选择合适的 GPU,以便 GKE 预配硬件。

  1. 使用节点选择器指定所选 GPU 类型和特定预留:

    spec:
      nodeSelector:
        cloud.google.com/gke-accelerator: ACCELERATOR
        cloud.google.com/gke-gpu-driver-version: latest
        # Optional: Include if using reserved capacity
        cloud.google.com/reservation-name: RESERVATION_NAME
        cloud.google.com/reservation-affinity: "specific"
    

    替换以下内容:

    • ACCELERATOR:您预留的加速器。您必须使用 nvidia-l4(适用于 G2)、nvidia-rtx-pro-6000(适用于 G4)或 nvidia-rtx-pro-6000-vws(适用于配备虚拟工作站的 G4)。
    • RESERVATION_NAME:Compute Engine 容量预留的名称。如需使用共享预留或预留的特定块和子块,请参阅使用预留的可用区级路径资源中的相应部分。
  2. 将以下资源添加到请求 GPU 的容器:

    containers:
      - name: my-container
        resources:
          limits:
            nvidia.com/gpu: AMOUNT
    

    将 AMOUNT 替换为容器要使用的 GPU 数量。如需在 Autopilot 集群中请求 GPU 不足一个的 G4 机器类型(g4-standard-6、g4-standard-12 或 g4-standard-24),您必须使用指定机器类型的自定义 ComputeClass,并且必须将 nvidia.com/gpu 设置为 1。如需了解相关说明,请参阅请求使用少于 1 个 GPU 的 G4 机器类型。

后续步骤