在kubeflow管道定义中,volume和pvolume之间有什么区别



我正在研究kubeflow管道,以及管道的不同组件是如何相互连接的。为此,我使用了官方GitHub存储库中的MNIST项目示例。但我无法理解以下代码片段中vop.volumemnist_training_container.pvolume之间的区别。来自文档dsl。VolumeOp.add_volume我假设vop.volume是kubernetes卷,但我不清楚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组件的教程。检查管道通常的样子。XGBoost培训管道示例。

最新更新