GKE Hypercluster 简介

许多 GKE 客户运行大规模 AI/ML 工作负载,或拥有敏感的知识产权 (IP),例如专有模型权重。本文档介绍了一种基础设施架构,该架构可在多个区域中运行的远程实例上运行容器,并由集群中的节点进行管理。这种关联的基础设施(包括各种操作系统 [OS] 映像和功能)称为 GKE Hypercluster

GKE Hypercluster 适用于希望获得超出 GKE 或 AI Hypercomputer 限制的安全性和可伸缩性,并且愿意接受更高的运营摩擦来达成这些目标的客户。

何时使用 GKE Hypercluster

默认情况下,GKE 集群旨在满足大多数生产 AI 工作负载的要求,包括具有特殊安全性和可伸缩性要求的工作负载。例如,GKE 支持以下用例:

  • 在机密 Google Kubernetes Engine 节点上运行 GPU,并从工作负载访问 vTPM 或基于硬件的机密计算模块。
  • 使用 Workload Identity Federation for GKE 将对加密数据的访问权限限制为仅限特定授权身份。
  • 通过使用 ComputeClass 和节点池自动创建功能,根据可用容量部署 TPU 和 GPU 节点。
  • 使用 Access ApprovalAccess TransparencyGKE control 平面 authority 控制和观察 Google 人员的任何访问行为。

GKE Hypercluster 中的关联基础架构专为特定的安全性和可伸缩性使用情形而设计,这些情形需要的功能超出了典型 GKE 架构的现有限制。根据设计,某些 GKE 可观测性、问题排查功能和特性不适用于关联的基础设施。此基础架构修改了典型的 GKE 集群架构,以满足以下特殊用例:

  • 防范内部威胁,保护模型和查询:防止您自己的平台管理员和 Google 员工访问专有模型权重或敏感的推理查询和响应。AI 资产仅在经过认证且可验证的环境中解密。

  • 跨区域运行 AI 工作负载:以超出支持的节点伸缩限制的规模部署工作负载。在任何有可用容量的地区(包括集群区域或可用区以外的位置)创建和使用加速器基础设施。

工作原理

GKE 集群架构中所述,标准模式集群具有区域级或可用区级控制平面,可用于提供 Kubernetes API 并管理集群中的所有节点和节点池。集群中的所有节点都使用特定的 VPC 网络,该网络也可能供其他 Google Cloud 资源使用。每个 GKE 节点都会运行各种系统组件,例如kubelet节点代理、日志记录和指标代理,以及其他 Kubernetes 和 GKE 组件。

相比之下,GKE Hypercluster 使用名为 linked runner 的实例,这些实例未在 Kubernetes API 服务器中注册为 Node 对象。这些实例具有以下属性:

  • 没有 Kubernetes 代理,只有最少的 GKE 组件。
  • 基于应用场景的专用操作系统映像。没有 GKE 节点映像。
  • 实例使用单独的专用 VPC 网络。

关联的 Runner 由集群中将 Runner 与集群相关联的控制节点管理。控制节点运行 kubelet 等系统组件。单个控制节点可以与多个 runner 关联。这些关联的 Runner 旨在以非常大的规模运行工作负载,例如需要比集群区域中的数据中心所能提供的更多电力的训练作业。

在设置基础架构期间,您需要根据自己的使用情形创建具有特定配置的 runner,然后将这些实例关联到集群中的专用控制节点。Kubernetes API 只需要管理控制节点,因为关联的 runner 实例没有 kubelet,也不会生成 API 服务器流量。创建关联的 runner 实例时,您可以通过以下任一方式配置实例:

  • 默认配置:默认情况下,关联的实例是运行 Container-Optimized OS 映像的 Compute Engine 虚拟机。平台管理员和 SRE 等紧急情况处理人员可以使用 SSH 访问实例。如果您想保留对基础架构的管理员访问权限,这些实例非常适合。
  • 密封配置:某些 AI 工作负载会处理敏感数据,例如专有模型权重和加密查询。如果您需要保护 AI 资产免遭所有访问(包括 Google 人员和您自己的管理员),可以将关联的 Runner 实例配置为密封模式。这些密封实例具有以下属性:
    • 使用最小的操作系统映像。
    • 针对 TPU 使用 Titanium Intelligence Enclave,针对 GPU 使用 NVIDIA 机密计算。
    • 执行工作负载级和固件证明。
    • 验证容器映像签名。
    • 阻止对实例和容器的所有管理员权限。

无论您使用哪种配置,实例都不包含 GKE 节点中包含的许多组件和功能,例如 GKE 特定的 TPU 运行时参数或 GKE 日志记录和监控代理。

默认配置简介

默认情况下,为 GKE Hypercluster 创建的实例旨在运行生产工作负载,同时提供与典型 GKE 节点类似的机制,以用于问题排查和紧急响应。实例在 Compute Engine 机器类型上运行,并使用 Container-Optimized OS 映像。在发生中断或崩溃等突发事件期间,管理员可以直接访问实例来排查问题。与 Kubernetes 节点不同,实例不会运行许多支持 Kubernetes 和 GKE 功能的系统组件,因此每个实例上都有更多可分配的资源。

您可以在任何 Google Cloud 区域中创建实例,然后将这些实例关联到集群中的控制节点。控制节点可执行 Kubernetes 控制平面的许多功能,包括管理已部署工作负载的生命周期。

关于密封配置

如果您的主要使用情形是保护资产免遭任何访问,那么您可以配置关联的 Runner 以使用密封配置,从而获得具有以下安全属性的实例:

  • 每个实例都是基于特定技术的可信执行环境 (TEE):
  • 实例运行基于 Container-Optimized OS 的最小化操作系统映像,该映像会停用 SSH 访问、阻止容器 shell 访问并运行证明代理。
  • 您可以定义一项政策,准确指定哪些工作负载可以在实例上运行。例如,您可以要求工作负载使用已签名的容器映像摘要或具有特定的 Pod 规范。
  • 证明代理将固件和工作负载测量结果发送到 Google Cloud Attestation,并返回可验证的证明声明结果令牌。

生成的实例提供受限的经过验证的环境,其中只能运行经过批准的代码,并且敏感数据在基于硬件的安全飞地中处理。实例返回的证明信息可验证工作负载是否运行已获批准的代码,以及是否部署在正确的实例上。

您可以通过以下方式使用这些密封实例来保护加密的模型、查询和响应:

  • 模型权重

    1. 使用 Cloud KMS 中的 Cloud HSM 密钥加密模型权重。
    2. 将加密的模型权重存储在 Cloud Storage 中。
    3. 仅向经过证明的工作负载授予对相应存储桶的读取权限。
    4. 仅向经过证明的工作负载授予解密密钥访问权限。
  • 查询和回答

    1. 使用 Cloud KMS 中的 Cloud HSM 密钥加密查询和响应。
    2. 仅向经过证明的工作负载授予解密权限。
    3. 在工作负载之间发送加密数据时,需要提供证明。

密封配置是为关联的 runner 实例提供的一层可选安全措施。与默认配置类似,您可以在任何区域和可用区中创建密封实例。不过,密封实例的安全属性意味着管理员和 Google 人员无法访问宿主实例以进行问题排查。

资格要求

GKE Hypercluster 专为特定 AI/机器学习应用场景而设计,这些应用场景无法通过典型的 GKE 集群架构和功能来满足。使用 GKE Hypercluster 的客户具有非典型的安全性和可伸缩性要求。GKE Hypercluster 仅适用于符合条件的 GKE 客户。如需查看您是否符合条件并申请访问权限,请与您的专属客户支持团队联系。