您可以在训练集群中使用数据集加速器来读取挂载的文件,提高数据集访问效率。本文为您介绍如何使用数据集加速器。
前提条件
在开始执行操作之前,请确认您已完成以下准备工作。
- 已创建Kubernetes 1.20及以上版本集群,具体操作,请参见创建Kubernetes托管版集群。
- 已通过kubectl连接到Kubernetes集群,具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群
- 已安装Kubernetes的包管理器Helm,具体操作,请参见安装Helm。
- 已创建数据集加速槽,具体操作,请参见创建及管理数据集加速槽。
注意事项
训练集群和挂载点需要在同一个VPC内,否则挂载数据会读取失败。
部署数据集加速器客户端
- 下载安装包。
wget http://dlc-release.oss-cn-zhangjiakou.aliyuncs.com/datasetacc/datasetacc-0.1.0.tgz
- 安装客户端。
helm install datasetacc ./datasetacc-0.1.0.tgz
- 验证客户端安装是否成功。
类似如下输出结果,说明客户端已安装成功。kubectl get pods -n datasetacc-system
其中CSI Pod数量应与集群内Node数量一致。
在集群中创建YAML文件
- 登录PAI控制台。
- 按照下图操作指引,下载YAML文件。
- 在Kubernetes集群中创建YAML文件。
kubectl create -f /XXXX/dataset-accelerator.yaml
重要 dataset-accelerator.yaml文件中需要包含步骤2中下载的YAML内容。
创建应用容器来使用数据集加速器
准备好数据集加速器客户端和YAML文件之后,您可以参考以下操作步骤使用数据集加速器来读取文件。
- 在Kubernetes集群中创建demo.yaml文件,文件内容如下。
其中:apiVersion: v1 kind: Pod metadata: name: demo-datasetacc-test spec: containers: - name: demo image: nginx volumeMounts: - mountPath: /data name: datasetacctest volumes: - name: datasetacctest persistentVolumeClaim: claimName: rel-1fmcg74oq6dxwdpjup
- claimName:应与您创建的数据集加速器客户端名称保持一致。
- mountPath:数据集挂载的位置。在集群Pod中,您可以通过该位置来访问您需要加速的文件。
- 使用demo.yaml文件创建Pod。
kubectl create -f demo.yaml
- 进入Pod内,验证是否能正常读取数据。
进入容器后,使用kubectl exec -it demo-datasetacc-test -- /bin/bash
ls data/
命令查看挂载目录下的文件与数据集一致,说明数据读取正常。
您可以按照以上方法,将persistentVolumeClaim挂载到您训练任务的Pod上,即可在该Pod内通过挂载的文件夹来访问您需要的文件。