V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TravisMtg
V2EX  ›  Kubernetes

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

  •  
  •   TravisMtg · 2022-10-20 08:23:30 +08:00 via iPhone · 2269 次点击
    这是一个创建于 759 天前的主题,其中的信息可能已经有所发展或是发生改变。
    x 问题:在做一个类似 kubeflow 的 MLOPS 的东西,整了一个模型想在 k8s 跑跑看,目前训练过程已经放进 docker ,希望将数据集直接挂载到 pod 上。

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

    如果长期大量存储,还是推荐 oss ,毕竟会便宜一些
    sujin190
        9
    sujin190  
       2022-10-20 10:52:09 +08:00   ❤️ 1
    云平台的 k8s 都支持挂载自己的对象存储吧,比如阿里云的 ack 挂载 oss ,华为云 cce 挂载 obs ,如果数据在自己机器上的话装个 nfs ,pod 直接挂载 nfs 就行,当然这些都是网络访问的,你不单独购买的网络的话访问速度估计都不快,如果数据不经常变,比较好的是买块云磁盘,先挂载到某个机器上完成数据上传,之后卸载了 pod 再选择挂载该云磁盘就行,用 initialContainer 下载也行,不过数据比较多来回训练也太耗时了,而且你还的保证 pod 宿主机有足够硬盘才行
    yyttrr
        10
    yyttrr  
       2022-10-20 11:36:09 +08:00   ❤️ 1
    我们这边做法是训练前这一次的数据是确定的,存放在 oss 上,启动的时候有个 initContainer 负责把这个数据拉到一块盘上
    YouRTBUG
        11
    YouRTBUG  
       2022-10-20 13:25:45 +08:00   ❤️ 1
    kubernetes-csi 机制来导入外部存储, 我们的存储端是 ceph(s3), 所以用了 ceph-csi 通过 pod 里的 pv 和 pvc 概念挂载到 pod 中。
    pandaxin
        12
    pandaxin  
       2022-10-20 19:09:09 +08:00
    看下 juicefs
    zhujq
        13
    zhujq  
       2022-10-21 10:04:13 +08:00
    看下 juicefs
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   981 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 19:19 · PVG 03:19 · LAX 11:19 · JFK 14:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.