【问题标题】:How to mount a Google Bucket in Kubeflow Pipeline?如何在 Kubeflow Pipeline 中挂载 Google Bucket?
【发布时间】:2021-04-11 10:55:54
【问题描述】:

我使用 KF 在 GCP 中的 VM 上启动并运行 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 标签必须由小写字母数字字符或“-”组成,并且必须以字母数字字符开头和结尾(例如“my-name”或“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 中挂载 google 存储桶?

【问题讨论】:

  • 检查 this 以使用 yaml 文件在容器中安装 GCS。我不确定,你在找这个吗?

标签: python-3.x google-cloud-platform kubeflow kubeflow-pipelines google-bucket


【解决方案1】:

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

  • 在您的 VM 上,使用 fuse 挂载 GCS 存储桶
gcsfuse xxx-images /path/to/mount-gcs
  • 然后在您的代码中使用此目录。无需安装,GCS 已使用 GCSFuse 安装。

【讨论】:

    猜你喜欢
    • 2019-09-14
    • 2021-12-14
    • 2019-10-13
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    相关资源
    最近更新 更多