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)。
流程
在一个终端窗口中,运行以下命令来登录到 OpenShift CLI:
oc login -u <user_name>
$ oc login -u <user_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出现提示时,输入 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"}}}
$ oc patch dspa <dspa_name> -n <namespace> \ --type=merge \ -p {"spec": {"apiServer": {"pipelineStore": "kubernetes"}}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告更改为 Kubernetes API 存储后,不再通过 OpenShift AI UI 或 REST API 访问内部数据库中存储的现有管道。要恢复对这些管道的访问,请将
spec.apiServer.pipelineStore
字段更改回数据库
。在 YAML 文件中定义一个包含以下内容的
Pipeline
自定义资源:Pipeline 定义示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用管道定义来在集群中创建
Pipeline
自定义资源。在以下命令中,将 < ;pipeline_yaml_file > 替换为 YAML 文件的名称:
示例命令
oc apply -f <pipeline_yaml_file>.yaml
$ oc apply -f <pipeline_yaml_file>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在包含以下内容的 YAML 文件中定义
PipelineVersion
自定义资源:Pipeline 版本定义示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用管道版本定义,在集群中创建
PipelineVersion
自定义资源。在以下命令中,将 < ;pipeline_version_yaml_file > 替换为 YAML 文件的名称:
示例命令
oc apply -f <pipeline_version_yaml_file>.yaml
$ oc apply -f <pipeline_version_yaml_file>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建管道版本后,系统会自动将以下标签应用到管道版本以便更轻松地过滤:
自动标签示例
pipelines.kubeflow.org/pipeline-id: <metadata.uid of the pipeline> pipelines.kubeflow.org/pipeline: <pipeline name>
pipelines.kubeflow.org/pipeline-id: <metadata.uid of the pipeline> pipelines.kubeflow.org/pipeline: <pipeline name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检查
Pipeline
自定义资源是否已成功创建:oc get pipeline <pipeline_name> -n <namespace>
$ oc get pipeline <pipeline_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
PipelineVersion
自定义资源是否已成功创建:oc get pipelineversion <pipeline_version_name> -n <namespace>
$ oc get pipelineversion <pipeline_version_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow