【问题标题】:Mounting an existing volume from a Kubeflow Pipeline: kfp.VolumeOP creates a new volume instead of creating a PVC to existing volume从 Kubeflow 管道挂载现有卷:kfp.VolumeOP 创建新卷而不是为现有卷创建 PVC
【发布时间】:2022-12-31 02:41:43
【问题描述】:

我是 KubeFlow 的新手,正在尝试移植/调整现有解决方案以在 KubeFlow 管道中运行。我现在要解决的问题是现有解决方案通过挂载卷共享数据。我知道这不是组件在 KubeFlow 中交换数据的最佳实践,但这将是一个临时的概念证明,我别无选择。

我在从管道访问现有卷时遇到问题。我基本上是在运行 KubeFlow 文档 here 中的代码,但指向现有的 K8S Vo

def volume_op_dag():
vop = dsl.VolumeOp(
    name="shared-cache",
    resource_name="shared-cache",
    size="5Gi",
    modes=dsl.VOLUME_MODE_RWO
)

卷共享缓存存在:

但是,当我运行管道时,会创建一个新卷:

我究竟做错了什么?我显然不想在每次运行管道时都创建一个新卷,而是挂载一个现有卷。

【问题讨论】:

    标签: kubeflow kubeflow-pipelines


    【解决方案1】:

    看起来您正在尝试在 KubeFlow 管道中创建引用现有 Kubernetes (K8S) 卷的 VolumeOp。您可以通过在 VolumeOp 定义中将现有参数设置为 True 来执行此操作。

    以下是如何修改代码以引用现有卷的示例:

    def volume_op_dag():
        vop = dsl.VolumeOp(
            name="shared-cache",
            resource_name="shared-cache",
            size="5Gi",
            modes=dsl.VOLUME_MODE_RWO,
            existing=True
        )
    

    请记住,使用这样的现有卷可能不是 KubeFlow 管道的最佳实践,因为它可能会导致再现性和管道隔离问题。通常建议使用数据传递机制(例如工件或输出/输入参数)在管道组件之间交换数据。但是,如果您确实需要使用管道中的现有卷作为临时解决方案,上述代码应该可以帮助您在管道定义中引用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-09
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      相关资源
      最近更新 更多