通过机密 GKE 节点加密使用中的 GPU 工作负载数据


本页面介绍了如何通过在加密的机密 Google Kubernetes Engine 节点上运行工作负载,加密使用中的 GPU 工作负载数据。您还将了解适用于在这些加密节点上运行的 GPU 工作负载的限制和注意事项。

本页面适用于希望为加速工作负载(例如 AI/ML 任务)中的数据提供更高安全性的安全工程师和运维人员。在阅读本页面之前,请确保您熟悉以下概念:

准备工作

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

  • 启用 Google Kubernetes Engine API。
  • 启用 Google Kubernetes Engine API
  • 如果您要使用 Google Cloud CLI 执行此任务,请安装初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行 gcloud components update 以获取最新版本。

可用性

如需使用机密 GKE 节点运行 GPU 工作负载,您必须满足以下所有条件:

  • 您必须使用 GKE Standard 模式集群。
  • 集群和节点必须运行 GKE 1.32.2-gke.1297000 版或更高版本。
  • 节点必须位于支持 NVIDIA 机密计算的可用区中。 如需了解详情,请参阅查看支持的区域
  • 节点必须使用 Spot 虚拟机、抢占式虚拟机或灵活启动(带已排队的预配)。
  • 如需使用灵活启动(带已排队的预配),集群必须运行 GKE 1.32.2-gke.1652000 版或更高版本。
  • 节点必须仅使用一个 NVIDIA H100 80 GB GPU 和 a3-highgpu-1g 机器类型。
  • 节点必须使用 Intel TDX 机密计算技术。
  • 您必须在节点位置拥有抢占式 H100 80 GPU (compute.googleapis.com/preemptible_nvidia_h100_gpus) 的配额。如需详细了解如何管理配额,请参阅查看和管理配额

所需的角色

如需获得创建机密 GKE 节点所需的权限,请让您的管理员为您授予 Google Cloud 项目的以下 IAM 角色:

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

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

限制

  • 不支持 Autopilot 模式集群。
  • 不支持 GPU 共享功能,例如分时或多实例 GPU。

在 Standard 模式中启用机密 GKE 节点

您可以在 Standard 模式集群或节点池中的机密 GKE 节点上运行 GPU 工作负载。机密 GKE 节点必须使用 Intel TDX 机密计算技术。

在新 Standard 集群中启用机密 GKE 节点

创建使用机密 GKE 节点的新的 Standard 模式集群时,请确保指定以下集群设置:

  • 位置:支持 NVIDIA 机密计算的区域或可用区。 如需了解详情,请参阅查看支持的区域
  • 机密计算技术:Intel TDX
  • 集群版本:1.32.2-gke.1297000 或更高版本

如需查看相关说明,请参阅在 Standard 集群上启用机密 GKE 节点

在新 Standard 节点池中启用机密 GKE 节点

如果集群未在集群级启用机密 GKE 节点,您可以在新节点池中启用机密 GKE 节点。集群必须满足可用性部分中的要求。

如需创建使用机密 GKE 节点的新 GPU 节点池,请选择以下其中一个选项:

控制台

  1. 转到 Kubernetes 集群

  2. 点击要修改的 Standard 模式集群的名称。
  3. 点击 添加节点池添加节点池页面会打开。
  4. 节点池详细信息窗格中,执行以下操作:
    1. 选择指定节点位置
    2. 仅选择可用性部分中列出的受支持的可用区。
    3. 确保控制平面版本为 1.32.2-gke.1297000 或更高版本。
  5. 在导航菜单中,点击节点
  6. 配置节点设置窗格中,执行以下操作:
    1. 机器配置部分中,点击 GPU
    2. GPU 类型菜单中,选择 NVIDIA H100 80GB
    3. GPU 数量菜单中,选择 1
    4. 确保未选择启用 GPU 共享
    5. GPU 驱动程序安装部分中,选择 User-managed
    6. 机器类型部分中,确保机器类型为 a3-highgpu-1g
    7. 选择在 Spot 虚拟机上启用节点
  7. 准备好创建节点池后,点击创建

gcloud

您可以创建在 Spot 虚拟机上运行机密 GKE 节点的 GPU 节点池,也可以使用“灵活启动(带已排队的预配)”预览版)。

  • 创建在 Spot 虚拟机上运行机密 GKE 节点的 GPU 节点池:

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --confidential-node-type=tdx --location=LOCATION \
        --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \
        --spot --accelerator=type=nvidia-h100-80gb,count=1,gpu-driver-version=disabled \
        --machine-type=a3-highgpu-1g
    

    替换以下内容:

    • NODE_POOL_NAME:新节点池的名称。
    • CLUSTER_NAME:现有集群的名称。
    • LOCATION:新节点池的位置。 相应位置必须支持在机密 GKE 节点中使用 GPU。
    • NODE_LOCATION1,NODE_LOCATION2,...:要在其中运行节点的可用区的逗号分隔列表。这些可用区必须支持使用 NVIDIA 机密计算。如需了解详情,请参阅查看支持的区域
  • 使用灵活启动(带已排队的预配)创建一个运行机密 GKE 节点的 GPU 节点池(预览版):

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \
        --machine-type=a3-highgpu-1g --confidential-node-type=tdx \
        --location=LOCATION \
        --flex-start --enable-queued-provisioning \
        --enable-autoscaling --num-nodes=0 --total-max-nodes=TOTAL_MAX_NODES \
        --location-policy=ANY --reservation-affinity=none --no-enable-autorepair \
        --accelerator=type=nvidia-h100-80gb,count=1,gpu-driver-version=disabled
    

    TOTAL_MAX_NODES 替换为节点池可以自动扩缩到的节点数上限。

    如需详细了解灵活启动(带已排队的预配)中的配置选项,请参阅通过灵活启动(带已排队的预配)运行大规模工作负载

在现有 Standard 节点池中启用机密 GKE 节点

如果集群未在集群级启用机密 GKE 节点,您可以更新现有的 Standard 节点池以使用灵活启动。确保集群和现有节点池满足可用性部分中列出的要求。

如需更新节点池以使用 Intel TDX 机密计算技术,请参阅更新现有节点池

安装支持机密 GKE 节点的 GPU 驱动程序

在 GPU 节点池中启用机密 GKE 节点后,您必须安装支持在这些节点上运行 GPU 工作负载的驱动程序。

此更改需要重新创建节点,这可能会导致正在运行的工作负载中断。如需详细了解此特定更改,请在使用节点升级策略(而不遵循维护政策)重新创建节点的手动更改表格中找到相应的行。如需详细了解节点更新,请参阅规划节点更新中断

如需了解相关说明,请参阅手动安装 NVIDIA GPU 驱动程序中的“COS”标签页。

问题排查

如需了解问题排查信息,请参阅排查 GKE 中的 GPU 问题

后续步骤