【问题标题】:access persistent volume in kubeflow from different components从不同的组件访问 kubeflow 中的持久卷
【发布时间】:2021-07-01 07:39:21
【问题描述】:

我正在向我的 kubeflow 管道组件添加持久卷声明,我希望能够从不同的组件访问卷,以便我可以在其中存储数据并从其他组件中检索它。

  1. 卷定义:
vop = kfp.dsl.VolumeOp(
        name="create-pvc",
        resource_name="my-pvc",
        modes=kfp.dsl.VOLUME_MODE_RWO,
        size=volume_size
    )
  1. 将体积安装到组件:
comp1.add_pvolumes({"/mnt'": vop.volume})
comp2.add_pvolumes({"/mnt'": comp1.pvolume})
  1. 我在 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)

  1. 这是 kubeflow 管道中显示的错误代码:
FileNotFoundError: [Errno 2] No such file or directory: '/mnt/data'

【问题讨论】:

    标签: persistent-volumes kubeflow kubernetes-pvc kubeflow-pipelines


    【解决方案1】:

    您想使用卷有什么特殊原因吗? KFP 有内置的数据传递机制(参见Data passing for Python

    如果您的数据大小

    对卷的支持较少,并且使组件不可移植。例如,Vertex AI Pipelines 不支持卷。

    【讨论】:

    • 谢谢!我想尝试 PVC 能够为大数据用例分配内存。另请注意,我在传递 1.5 GB 数据时收到此错误:“此步骤处于错误状态并显示此消息:无法保存输出:请求实体太大:限制为 3145728”
    • 当您的 downstream 组件尝试将大数据作为命令行值使用时,这可能发生在 upstream 组件中。请参阅我链接的教程。它有小数据传递(作为值)和大数据传递(作为文件)的示例。
    猜你喜欢
    • 2022-07-11
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多