问题标签 [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.
python - 在 Kubeflow 管道中共享秘密
我想与我的 Kubeflow 管道分享一些秘密,以便我可以将它们用作容器中的环境变量。我编写了一个如下所示的 pipeline-secrets.yaml:
和一个如下所示的 pipeline-pod-defaults.yaml:
这就是我的管道的样子:
但最后我收到了这个错误:
这是正确的方法吗?我如何与管道的其余部分分享我的秘密?抱歉,如果这是一个新手问题,我对 Kubernetes 和 Kubeflow 都是新手
kubeflow-pipelines - Kubeflow 处理大型输入文件时出错:节点资源不足:临时存储
在 Kubeflow - 当输入文件大小非常大(60 GB)时,我得到“节点资源不足:临时存储。” 看起来 kubeflow 正在使用 /tmp 文件夹来存储文件。我有以下问题:
- 交换非常大的文件的最佳方式是什么?如何避免临时存储问题?
- 所有 InputPath 和 OutputPath 文件都会存储在 Kubeflow 的 MinIO Instance 中吗?如果是,我们如何从 MinIO 中清除数据?
- 当数据在工作流的一个阶段传递到下一个阶段时,Kubeflow 是否从 MinIO 下载文件并将其复制到 /tmp 文件夹并将 InputPath 传递给函数?
- 有没有更好的方法在工作流的不同阶段之间传递 pandas 数据帧?目前我正在将 pandas 数据帧作为 CSV 导出到操作的 OutputPath 并在下一阶段从 InputPath 重新加载 pandas 数据帧。
- 有没有办法使用与使用临时存储不同的卷进行文件交换?如果是,我该如何配置它?
docker - Kubeflow Kale 在管道步骤中指定容器镜像
Kale 允许用户仅从UIstep
中指定。dependency
但是,我还想指定要用于该步骤的 docker 图像。
我不知道如何从 Kale UI 指定要在管道步骤中使用的自定义 docker 图像。
关于如何实现这一点的任何建议?
metadata - 在 AWS 上的 MiniKF 实例中执行 Kubeflow 管道时出错
我正在尝试在 AWS 的 MiniKF 集群中运行https://github.com/learnk8s/kubeflow-pipelines-demo/blob/master/KF_MNIST.ipynb示例。我收到以下错误
我没有更改共享笔记本链接中的任何内容。kubeflow api 是否有任何更改。是否有在 AWS 的 minikf 集群实例上构建 KF 管道的教程。
kubeflow - 是否可以使用工件作为 Kubeflow 管道中的可视化源
我正在 minikube 上试验 Kubeflow,并尝试使用 Kubeflow 管道 UI 的可视化功能。
该文档指出您应该生成一个mlpipeline-ui-metadata.json
文件并将其添加到ContainerOp
输出中。然后,此文件应引用csv
或markdown
文件以在 UI 中显示
我想使用我的组件输出工件之一作为可视化的源,但我不确定这是否可能。
例子:
理想情况下,我想设置"source":"report"
并且 Kubeflow UI 使用该report
工件作为降价可视化的源。
这样的事情可能吗?
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 的方式运行管道)
我非常感谢任何解决方案,甚至是如何进一步调查该问题的想法。谢谢你的帮助。
kubeflow - 如何在 Kubeflow Kale 中指定任务 pod 资源
是否可以为使用 Kale 创建的 kubeflow 管道中的任务指定 pod 资源(内存和 CPU 请求和限制)?
为了提供更多细节,当使用 DSL 在 python 中编写 kubflow 管道时,我可以指定任务 pod 资源,如下所示:
羽衣甘蓝也可以这样做吗?
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、...
所以现在我被困在两个维度上。
- 我不想为我正在安装的每个 JupyterLab 扩展添加路径条目
- 我找不到使 Kubeflow Pipelines UI 也可以从集群外部访问的方法
虽然 Elyra Pipeline Editor 可以通过 ClusterIP 访问 Kubeflow Pipelines Endpoint,但也可以访问 Kubeflow Pipelines UI...
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 组件,有没有办法做到这一点?