问题标签 [kubeflow-pipelines]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1043 浏览

python - 在 Kubeflow 管道中共享秘密

我想与我的 Kubeflow 管道分享一些秘密,以便我可以将它们用作容器中的环境变量。我编写了一个如下所示的 pipeline-secrets.yaml:

和一个如下所示的 pipeline-pod-defaults.yaml:

这就是我的管道的样子:

但最后我收到了这个错误:

这是正确的方法吗?我如何与管道的其余部分分享我的秘密?抱歉,如果这是一个新手问题,我对 Kubernetes 和 Kubeflow 都是新手

0 投票
0 回答
103 浏览

kubeflow-pipelines - Kubeflow 处理大型输入文件时出错:节点资源不足:临时存储

在 Kubeflow - 当输入文件大小非常大(60 GB)时,我得到“节点资源不足:临时存储。” 看起来 kubeflow 正在使用 /tmp 文件夹来存储文件。我有以下问题:

  • 交换非常大的文件的最佳方式是什么?如何避免临时存储问题?
  • 所有 InputPath 和 OutputPath 文件都会存储在 Kubeflow 的 MinIO Instance 中吗?如果是,我们如何从 MinIO 中清除数据?
  • 当数据在工作流的一个阶段传递到下一个阶段时,Kubeflow 是否从 MinIO 下载文件并将其复制到 /tmp 文件夹并将 InputPath 传递给函数?
  • 有没有更好的方法在工作流的不同阶段之间传递 pandas 数据帧?目前我正在将 pandas 数据帧作为 CSV 导出到操作的 OutputPath 并在下一阶段从 InputPath 重新加载 pandas 数据帧。
  • 有没有办法使用与使用临时存储不同的卷进行文件交换?如果是,我该如何配置它?
0 投票
1 回答
101 浏览

docker - Kubeflow Kale 在管道步骤中指定容器镜像

Kale 允许用户仅从UIstep中指定。dependency但是,我还想指定要用于该步骤的 docker 图像。

我不知道如何从 Kale UI 指定要在管道步骤中使用的自定义 docker 图像。

关于如何实现这一点的任何建议?

0 投票
0 回答
201 浏览

metadata - 在 AWS 上的 MiniKF 实例中执行 Kubeflow 管道时出错

我正在尝试在 AWS 的 MiniKF 集群中运行https://github.com/learnk8s/kubeflow-pipelines-demo/blob/master/KF_MNIST.ipynb示例。我收到以下错误

我没有更改共享笔记本链接中的任何内容。kubeflow api 是否有任何更改。是否有在 AWS 的 minikf 集群实例上构建 KF 管道的教程。

0 投票
0 回答
139 浏览

kubeflow - 是否可以使用工件作为 Kubeflow 管道中的可视化源

我正在 minikube 上试验 Kubeflow,并尝试使用 Kubeflow 管道 UI 的可视化功能。

文档指出您应该生成一个mlpipeline-ui-metadata.json文件并将其添加到ContainerOp输出中。然后,此文件应引用csvmarkdown文件以在 UI 中显示

我想使用我的组件输出工件之一作为可视化的源,但我不确定这是否可能。

例子:

理想情况下,我想设置"source":"report"并且 Kubeflow UI 使用该report工件作为降价可视化的源。

这样的事情可能吗?

0 投票
1 回答
499 浏览

minio - 如何从 Kubeflow 中删除工件?

Kubeflow 管道运行生成工件,从我在仪表板中看到的内容保存在 minio 上。我怎样才能删除它们?在此处输入图像描述

0 投票
0 回答
287 浏览

google-cloud-platform - 如果多个 Pod 在同一个 GKE 节点(VM)上运行,GKE 上传到 GCS 失败(错误 403:权限不足)

首先,我想强调的是,这不是(例如)这个的重复。

问题描述:

我在 GKE 集群上运行 Kubeflow Pipelines(在 GCP AI Platform Pipelines 上设置)。每个管道由几个组件组成(即 docker 容器 / 即 Pods)。如果我强制每个节点只能有一个运行 Pod,那么一切都会按预期工作,并且文件可以从该节点上传到目标 gcs 存储桶。在我的结论中,首先不应该存在许可问题,对吧?

但是,当多个 Pod (>1) 在池中的同一节点上运行以并行化管道执行并实现最佳资源使用时,会发生错误:

另外,值得一提的是,以前失败的上传到 GCS 的大部分时间都会成功,当我只是克隆失败的管道运行并重新启动它时。这可能是因为在新运行的同一节点上没有其他(冲突的)Pod。

我正在将文件从 VM(集群节点)上传到谷歌云存储桶,如下所示:

错误并不总是发生在同一个管道(即组件)中,而是某种随机发生的。我碰巧在尝试上传文件时容器或它们创建的 storage.Client() 连接之间可能存在一些冲突,但我可能在这里错了或遗漏了一些东西。

到目前为止我为解决这个问题所做的尝试(不幸的是没有成功):

  • 我用重试策略修饰了我的上传函数代码,该策略会触发多次调用上传函数,同时以指数方式将退避时间增加到 2 分钟,最多 20 次试验
  • 在上传文件之前,我会删除存储桶中的目标文件,以防它已经存在
  • 我创建了在其上执行管道的工作节点池,并设置了对存储的完全权限:

我还没有尝试过,因为我认为它不是很有希望,而且我的时间不多了:

  • 我没有按照这里的建议重新创建集群,因为我每次开始管道执行之前都在重新创建用于管道执行的节点池(不是默认池,它是单独的)(也没有权限问题,当我一次以每个节点一个 Pod 的方式运行管道)

我非常感谢任何解决方案,甚至是如何进一步调查该问题的想法。谢谢你的帮助。

0 投票
1 回答
156 浏览

kubeflow - 如何在 Kubeflow Kale 中指定任务 pod 资源

是否可以为使用 Kale 创建的 kubeflow 管道中的任务指定 pod 资源(内存和 CPU 请求和限制)?

为了提供更多细节,当使用 DSL 在 python 中编写 kubflow 管道时,我可以指定任务 pod 资源,如下所示:

羽衣甘蓝也可以这样做吗?

0 投票
1 回答
101 浏览

jupyter-lab - 在单个 Ingress Controller 上并行运行多个应用程序(例如 JupyterLab/Elyra + Kubeflow Pipelines UI)

我已经在 KIND(Kubernetes In Docker)集群上并行安装了 Elyra(它是 JupyerLab + 一些以 AI 为中心的扩展,包括用于创建 Kubeflow 管道的可视化编辑器)和 KubeFlow 管道。

首先,我安装了 Kubeflow Pipelines,如此处所述

export PIPELINE_VERSION=1.4.1
kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=$PIPELINE_VERSION"
kubectl wait --for 条件=建立 --timeout=60s crd/applications .app.k8s.io
kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/env/platform-agnostic-pns?ref=$PIPELINE_VERSION"

然后,我安装了 NGINX 入口控制器,如此处所述

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/kind/deploy.yaml

最后,我使用以下步骤安装了 Elyra/JupyterLab

所以我需要的所有用户界面都已经创建了相应的服务:

k get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elyra-ai NodePort 10.96.84.31 8888:32111/TCP 94m
kubernetes ClusterIP 10.96.0.1 443/TCP 105m

k get svc -n kubeflow |grep ml-pipeline-ui
ml-pipeline-ui ClusterIP 10.96.132.233 80/TCP 105m

因此,我创建了一个ingress.yaml以使 JupyterLab/Elyra 能够被访问。

如您所见,我添加了许多路径条目,例如 login、elyra、git、lsp、lab、kernelspecs、static、...

所以现在我被困在两个维度上。

  1. 我不想为我正在安装的每个 JupyterLab 扩展添加路径条目
  2. 我找不到使 Kubeflow Pipelines UI 也可以从集群外部访问的方法

虽然 Elyra Pipeline Editor 可以通过 ClusterIP 访问 Kubeflow Pipelines Endpoint,但也可以访问 Kubeflow Pipelines UI...

0 投票
1 回答
334 浏览

kubeflow - 是否可以将 kubeflow 组件与 tensorflow 扩展组件混合使用?

看起来 Kubeflow 已经弃用了所有的 TFX 组件。我目前有一些自定义 Kubeflow 组件可以帮助启动我的一些数据管道,我希望我可以在同一个 kubeflow 管道中使用一些 TFX 组件。是否有推荐的方法将 Kubeflow 和 Tfx 组件混合在一起?

我看到一个来自 Kubeflow 的旧 PR 弃用了他们的 TFX 组件: https ://github.com/kubeflow/pipelines/issues/3853

它指出:

创建这些组件是为了允许用户在其 KFP 管道中使用 TFX 组件,以便能够混合 KFP 和 TFX 组件。如果您的管道仅使用 TFX 组件,请使用官方 TFX SDK。

但我实际上确实需要混合 KFP 和 TFX 组件,有没有办法做到这一点?