GKE 卷填充器简介

Google Kubernetes Engine (GKE) 卷填充器可以帮助您在动态预配期间,自动化并简化将数据从 Cloud Storage 存储桶预加载到目标 PersistentVolumeClaim (PVC) 的过程。

GKE 卷填充器的工作原理

GKE 卷填充器利用了核心的 Kubernetes 卷填充器概念。GKE 卷填充器不是预配一个空卷,而是允许 PVC 引用一个 GCPDataSource 自定义资源。该自定义资源指定了源 Cloud Storage 存储桶和必要的凭证。

当您创建 dataSourceRef 指向 GCPDataSource 资源的 PVC 时,GKE 卷填充器会发起数据传输。它会先将数据从指定的 Cloud Storage 存储桶 URI 复制到底层永久性存储卷中,然后才将该卷提供给您的 Pod 使用。

此过程减少了您手动使用数据传输脚本或 CLI 命令的需求,并可自动化将大型数据集传输到永久性卷的过程。GKE 卷填充器支持在以下来源和目标类型之间进行数据传输:

GKE 卷填充器是一个 GKE 托管组件,在 Autopilot 和 Standard 集群上默认启用。您主要通过 gcloud CLIkubectl CLI 与 GKE 卷填充器进行交互。

架构

下图展示了数据如何从来源存储流向目标存储,以及如何使用 GKE 卷填充器创建目标存储的 PersistentVolume

  1. 您创建了一个引用 GCPDataSource 自定义资源的 PVC。
  2. GKE 卷填充器检测到该 PVC 并发起数据传输作业。
  3. 该传输作业会在现有节点池上运行,如果启用了节点自动预配,则会创建一个新节点池。
  4. 该传输作业将数据从 GCPDataSource 资源中指定的 Cloud Storage 存储桶复制到目标存储卷。
  5. 传输完成后,PVC 将绑定到目标存储卷,从而使数据可供工作负载 Pod 使用。

使用 GKE 卷填充器从来源数据存储进行数据传输,并创建目标存储的 PV

主要优势

GKE 卷填充器具有以下几项优势:

  • 自动填充数据:在预配期间自动用 Cloud Storage 中的数据填充卷,有助于减少运维开销。
  • 无缝数据可移植性:将数据从对象存储迁移到高性能文件存储 (Parallelstore) 或块存储 (Hyperdisk) 系统,有助于根据工作负载需求优化价格或性能。
  • 简化工作流:减少了对单独的数据加载作业或手动干预来准备永久性卷的需求。
  • Identity and Access Management (IAM) 集成:通过 Workload Identity Federation for GKE 使用基于 IAM 的身份验证,有助于确保具有精细访问权限控制的安全数据传输。
  • 加速 AI/机器学习工作负载:直接将大型数据集、模型和权重快速地预加载到高性能存储中,有助于加速训练和推理任务。

GKE 卷填充器的使用场景

您可以使用 GKE 卷填充器加载用于 AI/机器学习的大型训练数据集。假设您有一个用于训练大语言模型 (LLM)、大小为数 TB 的数据集存储在 Cloud Storage 存储桶中。您的训练作业在 GKE 上运行,并需要高 I/O 性能。您可以使用 GKE 卷填充器来自动预配 ParallelstoreHyperdisk ML 卷,并在 PVC 创建期间用 Cloud Storage 中的数据集填充它,而不是手动复制数据。这种自动化流程有助于确保您的训练 Pod 启动后即可立即、高速地访问数据。

以下是一些您可以使用 GKE 卷填充器的更多示例:

  • 将 Cloud Storage 中的 AI/机器学习模型权重和资产预缓存到 Hyperdisk ML 卷中,以缩短推理服务的模型加载时间。
  • 将数据从 Cloud Storage 迁移到永久性卷中,供需要高性能磁盘访问的有状态应用使用。

后续步骤