跳转到正文

存储

要让任务读写对象存储中的数据,需要把 Bucket、StorageClass、PVC 和容器挂载路径逐层对应起来。

看懂文件到容器的路径

text
Bucket / 对象键

StorageClass + Secret(每个关联集群)

PVC(Task 启动时确保存在)

Pod volumeMount

容器路径(应用实际读写的位置)

这条路径包含三个层次:

  1. 对象存储:数据位于 Bucket 中,并用对象键标识。文件浏览器把对象键的公共前缀显示为目录,底层不一定存在独立的目录对象。
  2. RLark 存储配置:记录 Provider、Endpoint、Bucket、Region、Path Style 和关联集群。RLark 会在每个关联集群中应用同名的 rclone CSI StorageClass 和访问 Secret。
  3. Task 挂载:创建器为角色生成 PVC,记录 PVC 名称到 StorageClass 名称的映射,再把 PVC 挂载到指定容器路径。

StorageClass 是集群级 Kubernetes 资源。一个存储配置出现在控制台列表中,不代表每个关联集群都能用对应凭据访问 Bucket。

让任务读取已上传文件

文件浏览器显示“上传成功”后,还要逐项确认:

  1. 对象位于存储配置指向的 Bucket 和前缀。
  2. Task 位于已关联该 StorageClass 的集群。
  3. PVC 已创建并绑定。
  4. PVC 已挂载到预期容器路径。
  5. 准备脚本或运行命令读取的是容器路径,而不是 Bucket 名称或本地电脑路径。

任一项不一致,都可能表现为“控制台看得到文件,但容器里没有”。

选择需要持久保存的数据

  • 数据集、模型权重、checkpoint、TensorBoard 事件文件和最终结果如果需要跨 Pod 生命周期保留,应写入经过确认的对象存储挂载路径。
  • 需要复用的中间产物也应写入持久挂载,并使用稳定、可追踪的文件名或对象键。
  • 程序和依赖由镜像版本管理;代码和配置模板保存在版本控制中。
  • 缓存、解压目录和可重新生成的临时文件可以留在容器文件系统,但 Pod 重建后可能丢失。
  • 凭据、SSH 私钥和临时签名链接不要作为普通文件上传,应使用平台批准的 Secret 或凭据管理流程。

多个 Worker 共享挂载前先验证并发访问

同一角色的所有副本会引用同一个自动创建的 PVC,该 PVC 使用 ReadWriteOnce 和 10Gi。多个节点能否同时挂载,以及底层对象存储是否满足应用所需的一致性,取决于目标集群的 CSI 驱动和后端。

如果多个 Worker 需要使用同一挂载,请先由平台管理员验证该集群的访问方式。写入端还应使用互不冲突的对象键,或由应用提供并发协调。没有完成验证时,不要并发写入同一个 checkpoint、事件文件或结果路径。

避开镜像已有目录

卷挂载到容器路径后,会遮蔽镜像在同一路径下原本可见的内容。例如,镜像在 /workspace/data 中预置了文件,而 Job 又把存储挂载到 /workspace/data,运行中的容器只能看到挂载卷中的内容。镜像文件通常没有被删除,只是在挂载期间不可见。

选择挂载路径时:

  • 不要覆盖镜像中必须保留的程序、依赖或默认配置目录;
  • 准备脚本和运行脚本应使用同一个明确的绝对路径;
  • 明确区分输入、checkpoint、最终输出和临时目录。

只有写入挂载路径内的数据才会进入对应的持久存储。切换 cd 不会让其他目录自动持久化。任务完成前,应核对应用的实际输出路径;回收 Pod 前,再从文件浏览器或获批准的存储工具确认预期对象已经存在。

在 hostPath 和对象存储之间选择

根据数据所在位置、是否需要跨 Pod 保留以及共享范围选择挂载方式。

方式数据位置适用场景主要限制
hostPath被调度节点的本地目录明确依赖单个节点本地数据不会复制到其他节点,也不是跨 Worker 共享存储
对象存储挂载StorageClass、Secret、PVC 和 CSI 驱动连接的 Bucket需要跨 Pod 生命周期保留或供后续任务使用需要逐集群验证凭据、挂载和并发访问方式

同一个容器路径不能由互相冲突的多个卷占用。

删除或改配前确认影响

  • 存储凭据应专用、最小权限并按组织策略轮换;不要写入 Job 命令、环境变量示例、日志或截图。
  • 从存储配置中移除集群,会删除该集群中的对应 StorageClass 和 Secret。操作前确认没有 Task 依赖它。
  • 删除 StorageClass 配置不会删除 Bucket 中的对象;删除对象也不会自动移除 Job 中的挂载配置。
  • 文件浏览器删除对象后没有 RLark 回收站。需要恢复能力时,应提前在对象存储侧启用版本控制或备份。

操作入口参见配置对象存储上传和下载文件创建训练任务