persistent-volumes - kubeflow 管道定义中的 volume 和 pvolume 有什么区别?

标签 persistent-volumes kubeflow-pipelines

我正在研究 kubeflow 管道以及管道的不同组件如何相互链接。为此,我使用了官方 GitHub 存储库中提供的 MNIST 项目示例。但我无法理解以下代码片段中 vop.volumemnist_training_container.pvolume 之间的区别。来自文档 dsl.VolumeOp.add_volume我假设 vop.volumekubernetes 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 .

关于persistent-volumes - kubeflow 管道定义中的 volume 和 pvolume 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67456428/

相关文章:

kubernetes - 如何将数据装载到Kubernetes上的持久存储中并在多个Pod之间共享存储?

kubernetes - 如何在持久卷声明中启用存储大小参数?

kubernetes - 如何从组件中获取运行的 id?

python - 使用 tfx 运行多个训练器时 Kubeflow Pipeline RuntimeError

kubernetes - 看不到已安装卷的变化

kubernetes - pvc删除后如何恢复pv(已发布)数据

kubeflow - Kubeflow pipeline组件中的返回参数

jupyter-lab - JupyterLab/Elyra : pipeline run on Kubeflow Pipelines fails with "No host specified" in local deployment

tensorflow - 如何使用专门针对 GCP 的 TFX SDK 实现 Kubeflow "Run Paramters"?