寻求利用 AI 功能的现代企业通常面临一个重大障碍:在其 Kubernetes 环境中复杂地部署和管理 GPU 基础设施。MinIO 的 AIStor 通过集成 NVIDIA GPU Operator 来正面应对这一挑战,彻底改变了组织为 AI 工作负载部署和管理 GPU 资源的方式。通过自动化 GPU 设置、驱动程序管理和资源优化,这种集成将曾经复杂的多步骤流程转变为只需单个命令即可实现的简化部署。结果是一个增强的 AIStor 平台,将强大的 AI 功能直接引入您的数据层,使组织能够专注于利用 AI 而不是管理基础设施。

GPU 管理的挑战

组织在管理 GPU 基础设施时面临着多方面的挑战,无论是在传统环境中,还是在 Kubernetes 等容器化平台中:

1 . 驱动程序复杂性

  • 不同的 GPU 型号需要特定的驱动程序版本

  • 驱动程序与各种作系统的兼容性

  • 复杂的内核依赖关系和交互

  • 驱动程序冲突导致的系统稳定性问题

  • 跨异构环境滚动更新

2 . 资源管理

  • 手动 GPU 发现和分配容易出错

  • 复杂的 GPU 内存管理要求

  • 需要高效的多租户隔离

  • 资源碎片导致利用率不足

  • 跨不同工作负载的公平调度

  • Kubernetes 中资源配额和限制的额外复杂性

3 . 运营开销

  • 手动安装和配置 CUDA 工具包

  • 复杂的监控和指标收集设置

  • 耗时的故障排除过程

  • 在不同环境中保持一致性

  • 用于 GPU 访问的容器运行时配置

  • 特定于 Kubernetes 的挑战:

    GPU 工作负载的节点标记和污点GPU 工作负载的节点标记和污点

    Pod 调度和关联性规则

    与集群自动扩展集成

在 Kubernetes 环境中,挑战尤其放大,组织必须在保持生产级可靠性和性能的同时,弥合容器编排和 GPU 管理之间的差距。

了解 NVIDIA GPU作员架构

NVIDIA GPU Operator 基于 Kubernetes Operator 框架构建,为 GPU 管理提供了全面的自动化解决方案。让我们探索一下它的架构和组件:

1 . NVIDIA 驱动程序 (DRV)

驱动程序组件是 GPU作的基础。它:

  • 管理作系统和 NVIDIA GPU 之间的低级交互

  • 处理 Kubernetes 节点上的自动驱动程序安装和更新

  • 提供 GPU 访问所需的内核模块

  • 管理驱动程序生命周期,包括版本兼容性和更新

  • 在需要时启用 RDMA 等功能以实现高速数据传输

2 . 使用 NVIDIA Container Toolkit 的容器运行时 (RT)

此组件使容器能够通过以下方式利用 GPU 资源:

  • 为容器运行时(Docker、containerd)提供必要的钩子和配置

  • 管理 GPU 访问权限和容器中的设备挂载

  • 处理 GPU 资源分配和隔离

  • 在容器内设置 NVIDIA 运行时环境

  • 为容器化应用程序配置适当的驱动程序路径和库

3 . 设备插件 (DP)

设备插件对于 Kubernetes 集成至关重要:

  • 将 GPU 资源通告给 Kubernetes 调度器

  • 管理 GPU 资源分配和跟踪

  • 处理 GPU 发现和运行状况监控

  • 支持对 GPU 分配给 Pod 的精细控制

  • 支持 MIG(多实例 GPU)配置等高级功能

  • 提供设备 ID 管理和可见性控制

4 . 监控和验证组件

这些组件提供可观察性并确保正常运行:

DCGM 导出器:

  • 收集 GPU 指标(利用率、内存、温度等)

  • 以 Prometheus 格式公开指标

  • 启用监控和警报集成

  • 提供实时 GPU 运行状况和性能数据

  • 支持集群范围的 GPU 资源监控

验证人:

  • 验证所有组件的正确安装和配置

  • 检查 GPU 运行状况和可用性

  • 验证驱动程序和工具包的兼容性

  • 确保所有 GPU作员组件的正确设置

  • 帮助解决部署问题

这些组件中的每一个都协同工作,在 Kubernetes 中提供完整的 GPU 管理解决方案,处理从驱动程序安装到监控和资源管理的所有事情。

设置

在我们的示例部署中,我们在 Kubernetes 集群中有 8 个存储节点和 1 个 GPU 节点。运行以下命令以查看您的 Kubernetes 集群。

kubectl get nodes

执行后,您应该会看到如下图所示的内容:

NAME         STATUS   ROLES    AGE    VERSION
min-gpu1     Ready    <none>   60d    v1.28.11
minio-k8s1   Ready    <none>   60d    v1.28.11
minio-k8s2   Ready    <none>   117d   v1.28.11
minio-k8s3   Ready    <none>   117d   v1.28.11
minio-k8s4   Ready    <none>   117d   v1.28.11
minio-k8s5   Ready    <none>   125d   v1.28.11
minio-k8s6   Ready    <none>   125d   v1.28.11
minio-k8s7   Ready    <none>   117d   v1.28.11
minio-k8s8   Ready    <none>   84d    v1.28.11

要设置 MinIO AIStor,用户所要做的就是在他们的终端中运行以下命令,并拥有对 kubernetes 集群的正确访问权限。

kubectl apply -k https://min.io/k8s/aistor/

然后,运行以下命令以配置对全局控制台的访问。

kubectl -n aistor port-forward svc/aistor 8444

现在,转到 http://localhost:8444/。您应该会看到 License (许可证) 页面,您可以在其中输入您的 AIStor 许可证密钥,如下图所示:

输入有效的许可证密钥后,您可以创建一个管理员帐户:

成功完成设置后,运行以下命令。

kubectl get node min-gpu1 -o json | jq ".status.capacity"

注意: 将上述命令中的节点名称更改为您的 GPU 节点的名称。

您应该会看到如下所示的内容:

{
  "cpu": "128",
  "devices.kubevirt.io/kvm": "1k",
  "devices.kubevirt.io/tun": "1k",
  "devices.kubevirt.io/vhost-net": "1k",
  "ephemeral-storage": "7440663456Ki",
  "hugepages-1Gi": "0",
  "hugepages-2Mi": "0",
  "memory": "230903312Ki",
  "nvidia.com/gpu": "4",
  "pods": "0"
}

这里需要注意的关键是 nvidia.com/gpu 键,它表明 AIStor 已成功设置 NVIDIA GPU 运算符,并且标签“nvidia.com/gpu”可供我们启用需要稍后设置基于 GPU 的推理服务器的 PromptObject API,或任何其他需要 GPU 的基于 AI 的工作负载。如果您在存储节点上运行相同的命令,则不会看到特定于 GPU 的密钥。

kubectl get node minio-k8s1 -o json | jq ".status.capacity"

**注意:**将上述命令中的节点名称更改为您的节点的名称。

您将看到以下输出:

{
  "cpu": "80",
  "devices.kubevirt.io/kvm": "1k",
  "devices.kubevirt.io/tun": "1k",
  "devices.kubevirt.io/vhost-net": "1k",
  "ephemeral-storage": "489629688Ki",
  "hugepages-1Gi": "0",
  "hugepages-2Mi": "0",
  "memory": "394838928Ki",
  "pods": "4"
}

只需一个命令,我们就能成功设置 AIStor 和 GPU Operator。

集成 GPU作员部署的主要优势

1 . 自动化 AI 基础架构

  • 适用于推理工作负载的零接触 GPU 设置

  • 基于推理需求的自动扩展

  • 内置高可用性和故障转移

2 . 数据局部性优化

3 .

  • 消除数据移动开销

  • 减少推理作的延迟

  • 优化 GPU 资源利用率

4 . 简化管理

  • 单命令部署

  • 自动更新和维护

  • 集成监控和扩展

结论

AIStor 与 NVIDIA GPU Operator 的集成代表了 AI 基础设施管理的重大进步。通过自动执行复杂任务并在存储和计算资源之间提供无缝集成,组织可以专注于其 AI 工作负载,而不是基础设施管理。该解决方案解决了 GPU 和数据管理中的关键挑战,为大规模 AI 工作负载提供了强大的基础。自动设置和优化的数据路径将 AI 引入数据所在的位置,全面的管理功能使其成为希望简化其 AI 基础架构的组织的理想选择。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐