1.2. 定义管道


Kubeflow Pipelines SDK 可让您定义端到端机器学习和数据管道。使用最新的 Kubeflow Pipelines 2.0 SDK 在 Python 代码中构建您的数据科学管道。构建管道后,使用 SDK 将它编译到 Intermediate Representation (IR) YAML 文件中。定义管道后,您可以将 YAML 文件导入到 OpenShift AI 仪表板,以便您可以配置其执行设置。

重要

如果您在以 FIPS 模式运行的集群使用 OpenShift AI,则数据科学项目的任何自定义容器镜像都必须基于 UBI 9 或 RHEL 9。这样可确保与 FIPS 批准的管道组件兼容,并防止与不匹配的 OpenSSL 或 GNU C 库(glibc)版本相关的错误。

您还可以使用 Elyra JupyterLab 扩展在 JupyterLab 中创建并运行数据科学项目。有关在 JupyterLab 中创建管道的更多信息,请参阅在 JupyterLab 中使用管道。有关 Elyra JupyterLab 扩展的更多信息,请参阅 Elyra 文档

1.2.1. 使用 Kubernetes API 定义管道

您可以使用 Kubernetes API 定义数据科学管道和管道版本,该 API 将它们作为自定义资源存储在集群中,而不是内部数据库。这种方法可让您更轻松地使用 OpenShift GitOps (Argo CD)或类似的工具来管理管道和管道版本,同时仍然允许您通过 OpenShift AI 用户界面(UI)、API 和 Kubeflow Pipelines (kfp)软件开发套件(SDK)管理它们。

重要

目前,Red Hat OpenShift AI 作为技术预览功能使用 Kubernetes API 定义管道版本。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

先决条件

  • 您之前已创建了可用的数据科学项目,并有一个管道服务器(一个 DataSciencePipelinesApplication 自定义资源)。
  • 已安装 OpenShift 命令行界面(CLI)。

流程

  1. 在一个终端窗口中,运行以下命令来登录到 OpenShift CLI:

    $ oc login -u <user_name>
    Copy to Clipboard Toggle word wrap

    出现提示时,输入 OpenShift 服务器 URL、连接类型和密码。

  2. 要将管道服务器配置为使用 Kubernetes API 存储而不是默认的 数据库 选项,请在项目的 DataSciencePipelinesApplication (DSPA)自定义资源中将 spec.apiServer.pipelineStore 字段设置为 kubernetes

    在以下命令中,将 &lt ;dspa_name > 替换为 DSPA 自定义资源的名称,并将 & lt;namespace > 替换为您的项目的名称:

    $ oc patch dspa <dspa_name> -n <namespace> \
      --type=merge \
      -p {"spec": {"apiServer": {"pipelineStore": "kubernetes"}}}
    Copy to Clipboard Toggle word wrap
    警告

    更改为 Kubernetes API 存储后,不再通过 OpenShift AI UI 或 REST API 访问内部数据库中存储的现有管道。要恢复对这些管道的访问,请将 spec.apiServer.pipelineStore 字段更改回 数据库

  3. 在 YAML 文件中定义一个包含以下内容的 Pipeline 自定义资源:

    Pipeline 定义示例

    apiVersion: pipelines.kubeflow.org/v2beta1
    kind: Pipeline
    metadata:
      name: <pipeline_name> 
    1
    
      namespace: <namespace> 
    2
    
    spec:
      displayName: <pipeline_display_name> 
    3
    Copy to Clipboard Toggle word wrap

    1
    将这个值替换为管道的名称。
    2
    将此值替换为项目的名称。
    3
    使用管道的显示名称替换这个值。
  4. 应用管道定义来在集群中创建 Pipeline 自定义资源。

    在以下命令中,将 &lt ;pipeline_yaml_file > 替换为 YAML 文件的名称:

    示例命令

    $ oc apply -f <pipeline_yaml_file>.yaml
    Copy to Clipboard Toggle word wrap

  5. 在包含以下内容的 YAML 文件中定义 PipelineVersion 自定义资源:

    Pipeline 版本定义示例

    apiVersion: pipelines.kubeflow.org/v2beta1
    kind: PipelineVersion
    metadata:
      name: <pipeline_version_name> 
    1
    
      namespace: <namespace> 
    2
    
    spec:
      pipelineName: <pipeline_name> 
    3
    
      displayName: <pipeline_version_display_name> 
    4
    
      description: This is the first version of the pipeline.
      pipelineSpec: 
    5
    
        # ... generated by kfp compile ...
    Copy to Clipboard Toggle word wrap

    1
    将这个值替换为管道版本的名称。
    2
    将此值替换为项目的名称。
    3
    将这个值替换为管道的名称。这个值必须与 Pipeline 自定义资源中的 metadata.name 值匹配。
    4
    将这个值替换为管道版本的显示名称。
    5
    使用 kfp SDK 编译后,将 spec.pipelineSpec 字段替换为管道的 YAML 表示。
  6. 应用管道版本定义,在集群中创建 PipelineVersion 自定义资源。

    在以下命令中,将 &lt ;pipeline_version_yaml_file > 替换为 YAML 文件的名称:

    示例命令

    $ oc apply -f <pipeline_version_yaml_file>.yaml
    Copy to Clipboard Toggle word wrap

    创建管道版本后,系统会自动将以下标签应用到管道版本以便更轻松地过滤:

    自动标签示例

    pipelines.kubeflow.org/pipeline-id: <metadata.uid of the pipeline>
    pipelines.kubeflow.org/pipeline: <pipeline name>
    Copy to Clipboard Toggle word wrap

验证

  1. 检查 Pipeline 自定义资源是否已成功创建:

    $ oc get pipeline <pipeline_name> -n <namespace>
    Copy to Clipboard Toggle word wrap
  2. 检查 PipelineVersion 自定义资源是否已成功创建:

    $ oc get pipelineversion <pipeline_version_name> -n <namespace>
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat