如何解决从不同组件访问 kubeflow 中的持久卷
我正在向我的 kubeflow 管道组件添加持久卷声明,我希望能够从不同的组件访问该卷,以便我可以在其中存储数据并从其他组件检索它。
- 卷定义:
vop = kfp.dsl.VolumeOp(
name="create-pvc",resource_name="my-pvc",modes=kfp.dsl.VOLUME_MODE_RWO,size=volume_size
)
- 将卷安装到组件:
comp1.add_pvolumes({"/mnt'": vop.volume})
comp2.add_pvolumes({"/mnt'": comp1.pvolume})
- 我在 comp1 中创建了一些数据并想从 comp2 中读取它
# data read from external source
data=some_data_frame_readed_from_gcs
# data pickled to volume
path = os.path.abspath("data")
with open(path,'wb') as f:
pickle.dump(data,f)
print("PATH: {}".format(path))
# output path is: "/mnt/data"
# Now I try to read it from comp2
with open(path,'rb') as f:
df = pickle.load(f)
- 这是 kubeflow 管道中显示的错误代码:
FileNotFoundError: [Errno 2] No such file or directory: '/mnt/data'
解决方法
您想使用卷有什么特别的原因吗? KFP 具有内置的数据传递机制(请参阅 Data passing for Python)
如果您的数据小于 10GB,我建议您使用内置的数据传递方法。
对卷的支持较少,并使组件不可移植。例如,Vertex AI Pipelines 不支持卷。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。