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)管理它们。
先决条件
-
您之前已创建了可用的数据科学项目,并有一个管道服务器(一个
DataSciencePipelinesApplication自定义资源)。 - 已安装 OpenShift 命令行界面(CLI)。
流程
在一个终端窗口中,运行以下命令来登录到 OpenShift CLI:
$ oc login -u <user_name>出现提示时,输入 OpenShift 服务器 URL、连接类型和密码。
要将管道服务器配置为使用 Kubernetes API 存储而不是默认的
数据库选项,请在项目的DataSciencePipelinesApplication(DSPA)自定义资源中将spec.apiServer.pipelineStore字段设置为kubernetes。在以下命令中,将 < ;dspa_name > 替换为 DSPA 自定义资源的名称,并将 & lt;namespace > 替换为您的项目的名称:
$ oc patch dspa <dspa_name> -n <namespace> \ --type=merge \ -p {"spec": {"apiServer": {"pipelineStore": "kubernetes"}}}警告更改为 Kubernetes API 存储后,不再通过 OpenShift AI UI 或 REST API 访问内部数据库中存储的现有管道。要恢复对这些管道的访问,请将
spec.apiServer.pipelineStore字段更改回数据库。在 YAML 文件中定义一个包含以下内容的
Pipeline自定义资源:Pipeline 定义示例
apiVersion: pipelines.kubeflow.org/v2beta1 kind: Pipeline metadata: name: <pipeline_name>1 namespace: <namespace>2 spec: displayName: <pipeline_display_name>3 应用管道定义来在集群中创建
Pipeline自定义资源。在以下命令中,将 < ;pipeline_yaml_file > 替换为 YAML 文件的名称:
示例命令
$ oc apply -f <pipeline_yaml_file>.yaml在包含以下内容的 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 ...应用管道版本定义,在集群中创建
PipelineVersion自定义资源。在以下命令中,将 < ;pipeline_version_yaml_file > 替换为 YAML 文件的名称:
示例命令
$ oc apply -f <pipeline_version_yaml_file>.yaml创建管道版本后,系统会自动将以下标签应用到管道版本以便更轻松地过滤:
自动标签示例
pipelines.kubeflow.org/pipeline-id: <metadata.uid of the pipeline> pipelines.kubeflow.org/pipeline: <pipeline name>
验证
检查
Pipeline自定义资源是否已成功创建:$ oc get pipeline <pipeline_name> -n <namespace>检查
PipelineVersion自定义资源是否已成功创建:$ oc get pipelineversion <pipeline_version_name> -n <namespace>