如何解决kubeflow 管道定义中的 volume 和 pvolume 有什么区别?
我正在研究 kubeflow 管道以及管道的不同组件如何相互链接。为此,我使用了官方 GitHub 存储库上提供的 MNIST 项目示例。但我无法理解以下代码片段中 vop.volume
和 mnist_training_container.pvolume
之间的区别。从文档 dsl.VolumeOp.add_volume 我假设 vop.volume
是 kubernetes volume 但我不清楚 pvolume
以及它为什么链接到训练容器以及它们之间有什么区别。
vop = dsl.VolumeOp(
name="create_volume",resource_name="data-volume",size="500Mi",modes=dsl.VOLUME_MODE_RWM)
# Create MNIST training component.
# train_op is from func_to_container_op which returns a kfp.dsl.ContainerOp.
# To this container we assign a K8 volume using add_pvolumes.
mnist_training_container = train_op(data_path,model_file) \
.add_pvolumes({data_path: vop.volume})
# Create MNIST prediction component.
mnist_predict_container = predict_op(data_path,model_file,image_number) \
.add_pvolumes({data_path: mnist_training_container.pvolume})
解决方法
pvolume 是一个有点奇怪的概念,它在 KFP 中有点陌生。这个想法是在组件之间“传递”一个音量,类似于正常输出(实际上它是相同的音量)。
我们建议我们的用户避免使用 pvolume 功能并避免在组件中使用卷。否则,组件和管道不可移植且可用性有限。
请查看示例、教程和组件。几乎没有管道使用卷。
请查看以下关于 Python 和 shell 组件的两个教程。检查管道通常的样子。 example XGBoost training pipeline。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。