微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Kubeflow Pipeline 中挂载 Google Bucket?

如何解决如何在 Kubeflow Pipeline 中挂载 Google Bucket?

我使用 KF 在 GCP 中的虚拟机上启动并运行了一个 KubeFlow 管道。 我使用带有图像 jupyter-kale 和 python 的 Jupyter Notebook 服务器创建管道。 管道的第一部分是进行数据准备,它下载图像并将它们保存到 PVC。这一切都很好,但我的存储空间用完了,所以我决定将下载的图像直接保存到谷歌存储桶,而不是使用 PVC。 我修改了我的管道,如下面的代码所示:

import kfp
import kfp.dsl as dsl
import kfp.onprem as onprem
import kfp.compiler as compiler
import os

@dsl.pipeline(
  name='try_mount',description='...'
)

def one_d_pipe(pvc_name = "gs://xxx-images/my_folder/"):
    
    trymount = dsl.ContainerOp(
        name="trymount",#image = "sprintname3:0.2.0",image = "eu.gcr.io/xxx-admin/kubeflow/trymount_1:0.1"
    )
    
    steps = [trymount]
    for step in steps:
        step.apply(onprem.mount_pvc(pvc_name,"gs://xxx-images/my_folder/",'/home/jovyan/data'))

但是此代码在开始说卷具有无效值并且无法找到后立即导致错误消息:

此步骤处于错误状态并显示以下消息:Pod "try-mount-75vrt-3151677017" is invalid: [spec.volumes[2].name: Invalid value: "gs://xxx-images/my_folder/ ":DNS-1123 标签必须由小写字母数字字符或“-”组成,并且必须以字母数字字符开头和结尾(例如“我的姓名”或“123-abc”,用于验证的正则表达式为“a” -z0-9?')、spec.containers[0].volumeMounts[3].name:未找到:“gs://xxx-images/my_folder/”、spec.containers[1].volumeMounts[0]。名称:未找到:“gs://xxx-images/my_folder/”]

所以,我的问题是:

  • 如何在 Kubeflow Pipelines 中挂载谷歌存储桶?

解决方法

您不能将存储桶安装为卷。它不是文件系统。但是,我确信您可以通过 use gcsfuse 在您的 VM 上作弊。

  • 在您的虚拟机上,使用保险丝挂载 GCS 存储桶
gcsfuse xxx-images /path/to/mount-gcs
  • 然后在您的代码中,使用此目录。无需挂载,GCS 已通过 GCSFuse 挂载。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?