本文介绍如何使用 KubeRay 在 Azure Kubernetes 服务(AKS)上配置和部署 Ray 群集,BlobFuse 提供可缩放存储。 你将了解如何设置群集、集成 BlobFuse 实现高吞吐量数据访问,以及如何使用 Ray 运行分布式优化或训练作业。 本指南还介绍了在 Ray 仪表板上监视结果以及高效管理资源。
概述
Ray 是用于分布式计算和机器学习工作负载的开源框架。 在 Azure Kubernetes 服务(AKS)上部署时,Ray 可以在多个节点上启用可缩放的超参数优化、训练和推理。 将 BlobFuse 作为持久性存储后端集成可让 Ray 作业有效地读取和写入大型数据集,这对于优化需要快速访问训练数据、中间结果和模型检查点的工作负荷尤其重要。
BlobFuse 的高吞吐量对于优化作业至关重要,因为这些工作负荷通常涉及许多并行任务,每次同时读取和写入数据。 BlobFuse 提供对 Azure Blob 存储的符合 POSIX 的高性能访问,最大限度地减少 I/O 瓶颈并确保分布式 Ray 任务能够更快地完成。 这可以提高资源利用率,并加速整体优化过程。
此解决方案利用 KubeRay 在 AKS 上协调 Ray 群集,BlobFuse 提供可缩放且高性能的存储。 该体系结构支持可靠的数据管理、快速 I/O 和无缝缩放,使数据科学家和工程师能够优化云中的模型开发和优化工作流。
部署体系结构
下图显示了在 AKS 上部署的 Ray 群集,其中包含使用 BlobFuse 预配的永久性卷。 BlobFuse 将 Azure Blob 存储连接到群集,从而实现对大型数据集的快速、符合 POSIX 标准的访问。 此体系结构可确保分布式优化作业的高吞吐量,使多个 Ray 辅助角色能够高效并行读取和写入数据,从而加速模型训练和超参数优化。
图 1:在 AKS 上部署的 Ray 集群使用 BlobFuse 提供可扩展的高吞吐量存储,以支持分布式调优作业。
存储注意事项
在 AKS 上部署用于分布式优化的 Ray 群集时,选择正确的存储后端对于性能和可伸缩性至关重要。 主要选项包括 Azure 磁盘、Azure 文件和 BlobFuse(Azure Blob 存储):
| 存储选项 | 可伸缩性 | 性能(吞吐量) | 访问模式 | 成本效益 | 分布式调优作业的适用性 |
|---|---|---|---|---|---|
| Azure 磁盘 | 有限(每个节点) | 高(单节点) | 单个/共享节点 | 更高,用于大量数据 | 不理想(有限的并发访问) |
| Azure 文件 | 中等 | 中等 | 多节点(共享) | 中等 | 在使用中是可行的,但在大规模扩展时可能会遇到瓶颈问题。 |
| BlobFuse/Blobs | 高(云计算规模) | 高(并行访问) | 多节点(共享) | 经济高效 | 最佳(可缩放、高吞吐量、并行访问) |
建议:
对于在 AKS 上运行分布式调优任务的 Ray 集群,BlobFuse(Azure Blob 存储)是首选方案。 它提供云规模的并发性、用于并行读取/写入的高吞吐量和经济高效的存储,使其成为数据密集型机器学习工作负载的理想选择。
部署 Ray 群集以使用 BlobFuse 进行调优
先决条件
- 请查看 AKS 上的 Ray 群集概述以了解组件和部署过程。
- 一份 Azure 订阅。 如果没有 Azure 订阅,可以在此处创建试用版。
- 已在本地计算机上安装 Azure CLI。 你可以按照如何安装 Azure CLI中的说明进行安装。
- 已安装 Azure Kubernetes 服务预览版扩展。
- 已安装 Helm。
- 已安装 Terraform 客户端工具或 OpenTofu。 本文使用 Terraform,但使用的模块应与 OpenTofu 兼容。
自动部署 Ray 示例
如果要以非交互方式部署完整的 Ray 示例,可以使用 GitHub 存储库中的 deploy.sh 脚本 (https://github.com/Azure-Samples/aks-ray-sample)。 此脚本将完成 Ray 部署过程部分中所述的步骤。
使用以下命令在本地克隆 GitHub 存储库,但要更改为存储库的根目录:
git clone https://github.com/Azure-Samples/aks-ray-sample cd aks-ray-sample/sample-tuning-setup/terraform使用以下命令部署完整的示例:
chmod +x deploy.sh ./deploy.sh部署完成后,请在 Azure 门户中查看日志输出和资源组,以查看创建的基础结构。
清理资源
若要清理在本指南中创建的资源,可以删除包含 AKS 群集的 Azure 资源组。
后续步骤
若要详细了解 AKS 上的 AI 和机器学习工作负载,请参阅以下文章: