求教:该如何把数据集喂给 pod 内的模型训练容器呢?

2022-10-20 08:23:30 +08:00
 TravisMtg
x 问题:在做一个类似 kubeflow 的 MLOPS 的东西,整了一个模型想在 k8s 跑跑看,目前训练过程已经放进 docker ,希望将数据集直接挂载到 pod 上。

已经了解了 pv ,pvc 的概念,也在网上搜了一些教程,但是都是目前看到的都是用来持久化**生产**出来的数据的。不用 hostpath 这种方法,有办法直接把数据文件夹和 pod 绑定让 pod 内的容器消费吗?
提前谢谢各位🙏
2267 次点击
所在节点    Kubernetes
13 条回复
jack80342
2022-10-20 08:26:15 +08:00
直接用 pv 、pvc 就可以,你是遇到什么问题了吗?
TravisMtg
2022-10-20 08:29:32 +08:00
@jack80342 谢谢回复。我现在遇到的问题是不知道该怎么提前把数据放进 pv 当中。
liunaijie
2022-10-20 08:36:06 +08:00
用 docker -v 把你本地数据挂进 pod 的某个目录
optional
2022-10-20 08:36:21 +08:00
使用 initialContainer 把数据下载进去,数据可以放 s3 等地方
TravisMtg
2022-10-20 08:47:55 +08:00
@optional 谢谢解答,这个看起来就是我想要的
julyclyde
2022-10-20 09:37:11 +08:00
pv 也不是“只能被”容器访问的啊
你也可以单独访问 pv 把内容放进去,然后再启动容器
ccde8259
2022-10-20 10:01:34 +08:00
这种场景为什么不用 HDFS+YARN……
winglight2016
2022-10-20 10:05:35 +08:00
数据在本地就 kubectl cp ,在云上就 curl/wget ,目的文件夹选 pvc 的挂载地址

如果长期大量存储,还是推荐 oss ,毕竟会便宜一些
sujin190
2022-10-20 10:52:09 +08:00
云平台的 k8s 都支持挂载自己的对象存储吧,比如阿里云的 ack 挂载 oss ,华为云 cce 挂载 obs ,如果数据在自己机器上的话装个 nfs ,pod 直接挂载 nfs 就行,当然这些都是网络访问的,你不单独购买的网络的话访问速度估计都不快,如果数据不经常变,比较好的是买块云磁盘,先挂载到某个机器上完成数据上传,之后卸载了 pod 再选择挂载该云磁盘就行,用 initialContainer 下载也行,不过数据比较多来回训练也太耗时了,而且你还的保证 pod 宿主机有足够硬盘才行
yyttrr
2022-10-20 11:36:09 +08:00
我们这边做法是训练前这一次的数据是确定的,存放在 oss 上,启动的时候有个 initContainer 负责把这个数据拉到一块盘上
YouRTBUG
2022-10-20 13:25:45 +08:00
kubernetes-csi 机制来导入外部存储, 我们的存储端是 ceph(s3), 所以用了 ceph-csi 通过 pod 里的 pv 和 pvc 概念挂载到 pod 中。
pandaxin
2022-10-20 19:09:09 +08:00
看下 juicefs
zhujq
2022-10-21 10:04:13 +08:00
看下 juicefs

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/888279

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX