在断开连接的环境中安装和卸载 OpenShift AI Self-Managed
在断开连接的环境中安装和卸载 OpenShift AI Self-Managed
摘要
前言 复制链接链接已复制到粘贴板!
了解如何使用 OpenShift 命令行界面和 Web 控制台在断开连接的环境中在 OpenShift 集群上安装 Red Hat OpenShift AI Self-Managed。要卸载产品,了解如何使用推荐的命令行界面 (CLI) 方法。
红帽不支持在集群中安装多个 OpenShift AI 实例。
红帽不支持在与 Red Hat OpenShift AI 附加组件相同的集群中安装 Red Hat OpenShift AI Operator。
第 1 章 OpenShift AI Self-Managed 的架构 复制链接链接已复制到粘贴板!
Red Hat OpenShift AI Self-Managed 是一个在自助管理环境中提供的 Operator,如 Red Hat OpenShift Container Platform 或 Red Hat OpenShift Container Platform,如 Red Hat OpenShift Dedicated (具有 AWS 或 GCP 的 Customer Cloud Subscription)、Red Hat OpenShift Service on Amazon Web Services (ROSA Classic 或 ROSA HCP)或 Microsoft Azure Red Hat OpenShift。
OpenShift AI 集成了以下组件和服务:
在服务层:
- OpenShift AI 仪表板
- 此面向客户的仪表板会显示 OpenShift AI 环境的可用和已安装的应用程序,以及学习资源,如教程、快速启动示例和文档等。管理用户可访问管理用户、集群、笔记本镜像、加速器配置集和模型服务运行时的功能。数据科学家可以使用控制面板创建项目来整理其数据科学工作。
- 模型服务
- 数据科学家可以部署受培训的机器学习模型,为生产环境中的智能应用程序提供服务。部署后,应用程序可以使用其部署的 API 端点向模型发送请求。
- 数据科学项目(data Science)管道
- 数据科学家可以使用 Docker 容器构建带有数据科学管道 2.0 的可移植机器学习(ML)工作流。通过数据科学管道,数据科学家可以在开发其数据科学模型时自动化工作流。
- Jupyter (自助管理的)
- 一个自我管理的应用程序,允许数据科学家自行配置笔记本服务器环境并在 JupyterLab 中开发机器学习模型。
- 分布式工作负载
- 数据科学家可以并行使用多个节点来更迅速地培训机器学习模型或处理数据。这种方法可显著减少任务完成时间,并允许使用更大的数据集和更复杂的模型。
在管理层:
- Red Hat OpenShift AI Operator
- 一个 meta-operator,它部署和维护属于 OpenShift AI 的所有组件和子 Operator。
- 监控服务
- Prometheus 从 OpenShift AI 收集指标数据以进行监控。
在 OpenShift 集群中安装 Red Hat OpenShift AI Operator 时,会创建以下新项目:
-
redhat-ods-operator项目包含 Red Hat OpenShift AI Operator。 -
redhat-ods-applications项目将安装仪表板和 OpenShift AI 的其他必要组件。 -
redhat-ods-monitoring项目包含用于监控的服务。 -
rhods-notebooks项目是默认部署笔记本环境的位置。
您或您的数据科学家必须为将使用机器学习模式的应用创建额外的项目。
不要在与 OpenShift AI 关联的命名空间中安装独立软件供应商 (ISV) 的应用程序。
第 2 章 了解更新频道 复制链接链接已复制到粘贴板!
您可以使用更新频道来指定您要将 Operator 更新至的 Red Hat OpenShift AI 次版本。更新频道还允许您通过 fast, stable ,stable -x.yeus-x.y, 和 alpha 频道选项选择您的更新的时间和级别。
已安装的 Operator 的订阅指定更新频道,用于跟踪和接收 Operator 的更新。您可以更改更新频道,以开始跟踪并从更新频道接收更新。有关发行频率以及与每个可用更新频道关联的生命周期的更多信息,请参阅 Red Hat OpenShift AI Self-Managed Life Cycle 知识库文章。
| Channel | 支持 | 发行频率 | 推荐的环境 |
|---|---|---|---|
|
| 一个月的完全支持 | 每个月 |
可访问最新产品功能的生产环境。 使用自动更新选择此流频道,以避免每月手动升级。 |
|
| 三个完全支持 | 每三个月 |
生产环境,其稳定性优先于新功能可用性。 使用自动更新选择此流频道来访问最新的稳定版本,并避免手动升级。 |
|
| 七月的完全支持 | 每三个月 |
生产环境,其稳定性优先于新功能可用性。
选择编号的 stable 频道(如 |
|
| 持续 7 个月的完全支持后,延长的更新支持将持续 7 个月 | 每 9 个月 |
在 7 个月内无法升级的企业级环境。 如果您优先选择对新功能可用性的稳定性,请选择此流频道。 |
|
| 一个月的完全支持 | 每个月 |
具有早期访问功能的开发环境可能无法正常工作。
选择此频道以使用早期访问功能来测试功能并在开发过程中提供反馈。红帽产品服务等级协议 (SLA) 不支持 early-access 的功能。 有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。 有关 Red Hat Developer 技术预览功能支持范围的更多信息,请参阅开发人员技术预览功能支持范围。 |
embedded 和 beta 频道是将在以后的版本中删除的传统频道。不要为新的 Operator 安装选择 内嵌 或 beta 频道。
第 3 章 在断开连接的环境中部署 OpenShift AI 复制链接链接已复制到粘贴板!
请阅读本节,了解如何在断开连接的环境中为数据科学家部署 Red Hat OpenShift AI 作为开发和测试环境环境。断开连接的集群位于受限网络中,通常在防火墙后面。在这种情况下,集群无法访问红帽提供的 OperatorHub 源所在的远程 registry。相反,Red Hat OpenShift AI Operator 可以使用私有 registry 镜像到断开连接的环境中。
在断开连接的环境中安装 OpenShift AI 涉及以下高级别任务:
- 确认 OpenShift 集群满足所有要求。请参阅 OpenShift AI Self-Managed 的要求。
- 为 OpenShift 添加管理用户。请参阅在 OpenShift 中添加管理用户。
- 将镜像镜像(mirror)到私有 registry。对于 断开连接的安装,请参阅将镜像镜像到私有 registry。
- 安装 Red Hat OpenShift AI Operator。请参阅安装 Red Hat OpenShift AI Operator。
- 安装 OpenShift AI 组件。请参阅 安装和管理 Red Hat OpenShift AI 组件。
- 配置用户和管理员组,为用户提供 OpenShift AI 的访问权限。请参阅 将用户添加到 OpenShift AI 用户组。
- 为您的用户提供部署 OpenShift AI 的 OpenShift 集群的 URL。请参阅 访问 OpenShift AI 仪表板。
3.1. OpenShift AI 自我管理的要求 复制链接链接已复制到粘贴板!
要在断开连接的环境中在 Red Hat OpenShift 集群中安装 Red Hat OpenShift AI,您必须满足以下要求:
产品订阅
您必须有 Red Hat OpenShift AI Self-Managed 订阅。
请联系您的红帽客户经理购买新的订阅。如果您还没有帐户管理器,请在 https://www.redhat.com/en/contact 中填写表单以请求一个。
集群管理员对 OpenShift 集群的访问权限
- 您必须有一个具有集群管理员访问权限的 OpenShift 集群。按照 OpenShift Container Platform 文档使用现有集群或创建集群: 在断开连接的环境中安装集群。
- 安装集群后,按照 OpenShift Container Platform 文档配置 Cluster Samples Operator: 为受限集群配置 Samples Operator。
- 在安装 Operator 时,您的集群必须至少有 2 个 worker 节点,至少有 8 个 CPU 和 32 GiB RAM 用于 OpenShift AI。为确保 OpenShift AI 可用,除了最低要求外,还需要额外的集群资源。
- 要在单一节点 OpenShift 上使用 OpenShift AI,该节点必须至少有 32 个 CPU 和 128 GiB RAM。
您的集群配置了可动态置备的默认存储类。
运行
oc get storageclass命令确认配置了默认存储类。如果在名称旁边没有存储类及(默认),请按照 OpenShift Container Platform 文档配置默认存储类: 更改默认存储类。有关动态置备的更多信息,请参阅动态置备。- Open Data Hub 不能安装在集群中。
有关管理 组成 OpenShift 集群的机器的更多信息,请参阅机器管理概述。
为 OpenShift 配置身份提供程序
- Red Hat OpenShift AI 使用与 Red Hat OpenShift Container Platform 相同的身份验证系统。有关 配置身份提供程序的更多信息,请参阅了解身份提供程序配置。
-
使用具有
cluster-admin角色的用户访问集群;不允许kubeadmin用户。
镜像机器上的互联网访问
除了互联网访问外,还必须访问以下域来镜像 OpenShift AI Self-Managed 安装所需的镜像:
-
cdn.redhat.com -
subscription.rhn.redhat.com -
registry.access.redhat.com -
registry.redhat.io -
quay.io
-
对于基于 CUDA 的镜像,必须访问以下域:
-
ngc.download.nvidia.cn -
developer.download.nvidia.com
-
数据科学项目准备
- Data Science pipelines 2.0 包含 Argo 工作流的安装。如果一个现有 Argo 工作流安装没有在集群中的数据科学管道安装,则安装 OpenShift AI 后将禁用数据科学管道。在安装 OpenShift AI 前,请确保集群没有由数据科学管道安装的 Argo 工作流,或删除 Argo 工作流的独立安装。
- 在断开连接的环境中执行管道前,您必须将镜像上传到私有 registry。如需更多信息,请参阅 镜像以在受限环境中运行管道。
- 您可以将管道工件存储在 S3 兼容对象存储桶中,以便不使用本地存储。要做到这一点,您必须首先对存储帐户上的 S3 存储桶配置写入访问权限。
安装 KServe 依赖项
- 要支持 KServe 组件(由 single-model 服务平台用来为大型模型提供服务),还必须为 Red Hat OpenShift Serverless 和 Red Hat OpenShift Service Mesh 安装 Operator 并执行额外的配置。如需更多信息 ,请参阅关于单模式服务平台。
-
如果要为 single-model 服务平台添加授权供应商,您必须安装
Red Hat - AuthorinoOperator。如需更多信息,请参阅为 单模式服务平台添加授权供应商。
安装模型 registry 依赖项(技术预览功能)
- 要使用模型 registry 组件,还必须为 Red Hat Authorino、Red Hat OpenShift Serverless 和 Red Hat OpenShift Service Mesh 安装 Operator。有关配置模型 registry 组件的更多信息,请参阅配置模型 registry 组件。
访问对象存储
- OpenShift AI 组件需要或可以使用 S3 兼容对象存储,如 AWS S3、MinIO、Ceph 或 IBM Cloud Storage。对象存储是一种数据存储机制,允许用户作为对象或文件访问其数据。S3 API 是基于 HTTP 访问对象存储服务的可识别标准。
- 对象存储必须可以被 OpenShift 集群访问。在与集群相同的断开连接的网络中部署对象存储。
以下组件需要对象存储:
- 单一或多模式服务平台,以部署存储模型。请参阅 在单模式服务平台上部署 模型或使用多型号服务平台部署模型。
- 数据科学管道、存储工件、日志和中间结果。请参阅配置管道服务器和 关于管道日志。
以下组件可以使用对象存储:
- 工作台,用于访问大型数据集。请参阅在数据科学项目中添加连接。
- 分布式工作负载,用于从和推送结果中提取输入数据。请参阅从数据科学管道运行分布式数据科学工作负载。
- 管道中执行的代码。例如,要将生成的模型存储在对象存储中。请参阅 Jupyterlab 中的管道概述。
3.2. 在 OpenShift 中添加管理用户 复制链接链接已复制到粘贴板!
在您可以为数据科学家用户安装和配置 OpenShift AI 前,您必须获取 OpenShift 集群管理员(cluster-admin)特权。
要为用户分配 cluster-admin 权限,请按照相关 OpenShift 文档中的步骤操作:
- OpenShift Container Platform: 创建集群管理员
- OpenShift Dedicated: 管理 OpenShift Dedicated 管理员
- ROSA: 创建集群管理员用户以快速集群访问
3.3. 为断开连接的安装将镜像镜像到私有 registry 复制链接链接已复制到粘贴板!
您可以通过将所需的容器镜像镜像到私有容器 registry,在断开连接的环境中将 Red Hat OpenShift AI Operator 安装到 OpenShift 集群。将镜像镜像到容器 registry 后,您可以使用 OperatorHub 安装 Red Hat OpenShift AI Operator。
您可以将 mirror registry 用于 Red Hat OpenShift,它是一个小型容器 registry,用作在断开连接的环境中为 OpenShift AI 镜像所需的容器镜像的目标。如果安装环境中已有另一个容器 registry,则使用 mirror registry for Red Hat OpenShift 是可选的。
先决条件
- 集群管理员可以访问正在运行的 OpenShift Container Platform 集群,版本 4.14 或更高版本。
- 您有 Red Hat OpenShift Cluster Manager 的凭证(https://console.redhat.com/openshift/)。
- 您的镜像机器正在运行 Linux,有 100 GB 的可用空间,并可访问互联网,以便它可以获取镜像来填充镜像存储库。
-
已安装 OpenShift CLI(
oc)。 - 如果您计划使用 NVIDIA GPU,已镜像并部署了 NVIDIA GPU Operator。请参阅 OpenShift Container Platform 文档中的配置 NVIDIA GPU Operator 部分。
- 如果您计划使用数据科学管道,已镜像 OpenShift Pipelines operator。
- 如果您计划使用 single-model 服务平台为大型模型提供服务,您已对 Red Hat OpenShift Serverless 和 Red Hat OpenShift Service Mesh 的 Operator 进行镜像。如需更多信息,请参阅 Serving 大模型。
- 如果您计划使用分布式工作负载组件,已镜像 Ray 集群镜像。
流程
- 创建镜像 registry。请参阅 OpenShift Container Platform 文档中的使用 Red Hat OpenShift 创建带有 mirror registry 的镜像 registry。
要镜像 registry 镜像,请在运行 Linux 的镜像机器上安装
oc-mirrorOpenShift CLI 插件(版本 4.14 或更高版本)。请参阅 OpenShift Container Platform 文档中的安装 oc-mirror OpenShift CLI 插件。重要在版本 4.14 之前,
oc-mirror的版本不允许镜像提供的完整镜像集配置。- 创建容器镜像 registry 凭证文件,允许将镜像从红帽镜像到您的镜像。请参阅 OpenShift Container Platform 文档中的配置允许镜像镜像的凭证。
-
从 断开连接的安装程序帮助程序 存储库打开示例镜像设置配置文件(
rhoai-<version>.md)并检查其内容。 使用示例镜像设置配置文件,创建一个名为
imageset-config.yaml的文件,并使用部署中镜像设置配置的值填充。要查看可用的 OpenShift 版本列表,请运行以下命令:这可能需要几分钟。如果命令返回错误,请重复 配置允许镜像镜像的凭证 的步骤。
oc-mirror list operators要查看特定版本的 OpenShift Container Platform 中的软件包的可用频道(如 4.15),请运行以下命令:
oc-mirror list operators --catalog=registry.redhat.io/redhat/redhat-operator-index:v4.15 --package=<package-name>有关订阅更新频道的详情,请参阅了解更新频道。
重要示例镜像设置配置仅用于演示目的,可能需要根据部署进行进一步更改。
要识别最适合您的部署的属性,请使用 oc-mirror 插件为断开连接的安装镜像 文档和用例。
您的
imageset-config.yaml应该类似以下示例,其中数据科学项目需要openshift-pipelines-operator-rh,KServe 组件需要serverless-operator和servicemeshoperator。kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 archiveSize: 4 storageConfig: registry: imageURL: registry.example.com:5000/mirror/oc-mirror-metadata skipTLS: false mirror: operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15 packages: - name: rhods-operator channels: - name: stable minVersion: 2.10.0 maxVersion: 2.10.0 - name: openshift-pipelines-operator-rh channels: - name: stable - name: serverless-operator channels: - name: stable - name: servicemeshoperator channels: - name: stable
将指定的镜像设置配置下载到镜像机器上的本地文件中:
-
将
mirror-rhoai替换为您要输出镜像集文件的目标目录。 -
目标目录路径必须以
file://开头。 下载可能需要几分钟时间。
$ oc mirror --config=./imageset-config.yaml file://mirror-rhoai提示如果
tls: failed to verify certificate: x509: certificate signed by unknown authority错误被返回,并且您想要忽略它,请在镜像设置配置文件中将skipTLS设置为true,然后再次运行命令。
-
将
验证镜像设置
.tar文件是否已创建:$ ls mirror-rhoai mirror_seq1_000000.tar mirror_seq1_000001.tar如果在镜像设置配置文件中指定了
archiveSize值,则镜像集可能会划分为多个.tar文件。可选:验证镜像集
.tar文件的总大小大约为 75 GB:$ du -h --max-depth=1 ./mirror-rhoai/如果镜像集的总大小明显低于 75 GB,请再次运行
oc mirror命令。将生成的镜像集的内容上传到目标镜像 registry 中:
-
将
mirror-rhoai替换为包含镜像设置.tar文件的目录。 将
registry.example.com:5000替换为您的镜像 registry。$ oc mirror --from=./mirror-rhoai docker://registry.example.com:5000提示如果
tls: 无法验证 certificate: x509: certificate signed by unknown authority错误,并且您要忽略它,请运行以下命令:$ oc mirror --dest-skip-tls --from=./mirror-rhoai docker://registry.example.com:5000
-
将
-
以具有
cluster-admin角色的用户身份登录到目标 OpenShift 集群。 验证
ImageContentSourcePolicy和CatalogSource资源是否存在 YAML 文件:将
<results-directory> 替换为您的结果目录的名称。$ ls oc-mirror-workspace/<results-directory>/ catalogSource-cs-redhat-operator-index.yaml charts imageContentSourcePolicy.yaml mapping.txt release-signatures
将生成的
ImageContentSourcePolicy和CatalogSource资源安装到集群中:将
<results-directory> 替换为您的结果目录的名称。$ oc apply -f ./oc-mirror-workspace/<results-directory>/imageContentSourcePolicy.yaml $ oc apply -f ./oc-mirror-workspace/<results-directory>/catalogSource-cs-redhat-operator-index.yaml
验证
验证
CatalogSource和 pod 是否已成功创建:$ oc get catalogsource,pod -n openshift-marketplace这应该至少返回一个目录和两个 pod。
检查 OperatorHub 中是否存在 Red Hat OpenShift AI Operator:
- 登录到 OpenShift Container Platform 集群 Web 控制台。
点 Operators → OperatorHub。
OperatorHub 页面将打开。
- 确认显示了 Red Hat OpenShift AI Operator。
- 如果您镜像了额外的 Operator,如 OpenShift Pipelines、Red Hat OpenShift Serverless 或 Red Hat OpenShift Service Mesh,请检查这些 Operator 是否存在 OperatorHub。
3.4. 安装 Red Hat OpenShift AI Operator 复制链接链接已复制到粘贴板!
本节介绍如何使用命令行界面(CLI)和 OpenShift Web 控制台在 OpenShift 集群上安装 Red Hat OpenShift AI Operator。
如果要从以前的 OpenShift AI 版本升级,而不是执行新安装,请参阅 在断开连接的环境中升级 OpenShift AI。
如果 OpenShift 集群使用代理访问互联网,您可以配置 Red Hat OpenShift AI Operator 的代理设置。如需更多信息,请参阅 覆盖 Operator 的代理设置。
3.4.1. 使用 CLI 安装 Red Hat OpenShift AI Operator 复制链接链接已复制到粘贴板!
以下流程演示了如何使用 OpenShift 命令行界面(CLI)在 OpenShift 集群上安装 Red Hat OpenShift AI Operator。您必须在集群中安装 OpenShift AI 组件前安装 Operator。
先决条件
- 您有一个正在运行的 OpenShift 集群,版本 4.14 或更高版本,配置了可动态置备的默认存储类。
- 具有集群管理员特权。
- 您已下载并安装 OpenShift 命令行界面 (CLI)。请参阅安装 OpenShift CLI。
- 您已将所需的容器镜像镜像到私有 registry。对于 断开连接的安装,请参阅将镜像镜像到私有 registry。
流程
- 打开一个新的终端窗口。
按照以下步骤,以集群管理员身份登录到 OpenShift 集群:
- 在 OpenShift Web 控制台右上角,单击您的用户名,然后选择 Copy login command。
- 登录后,单击 Display token。
使用此令牌命令复制登录,并将它粘贴到 OpenShift 命令行界面(CLI)中。
$ oc login --token=<token> --server=<openshift_cluster_url>
通过执行以下操作为 Operator 安装创建一个命名空间:
创建名为
rhods-operator-namespace.yaml的命名空间 YAML 文件。apiVersion: v1 kind: Namespace metadata: name: redhat-ods-operator1 - 1
- 定义安装 Operator 所需的
redhat-ods-operator命名空间。
在 OpenShift 集群中创建命名空间。
$ oc create -f rhods-operator-namespace.yaml您会看到类似如下的输出:
namespace/redhat-ods-operator created
通过执行以下操作为 Operator 安装创建一个 operator 组:
创建一个
OperatorGroup对象自定义资源 (CR) 文件,如rhods-operator-group.yaml。apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: rhods-operator namespace: redhat-ods-operator1 - 1
- 定义所需的
redhat-ods-operator命名空间。
在 OpenShift 集群中创建
OperatorGroup对象。$ oc create -f rhods-operator-group.yaml您会看到类似如下的输出:
operatorgroup.operators.coreos.com/rhods-operator created
通过执行以下操作为 Operator 安装创建订阅:
创建一个
Subscription对象 CR 文件,如rhods-operator-subscription.yaml。apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: rhods-operator namespace: redhat-ods-operator1 spec: name: rhods-operator channel: <channel>2 source: cs-redhat-operator-index sourceNamespace: openshift-marketplace startingCSV: rhods-operator.x.y.z3 - 1
- 定义所需的
redhat-ods-operator命名空间。 - 2
- 3
- 可选:设置 operator 版本。如果没有指定值,订阅默认为最新的 operator 版本。如需更多信息,请参阅 Red Hat OpenShift AI Self-Managed Life Cycle 知识库文章。
在 OpenShift 集群中创建
Subscription对象来安装 Operator。$ oc create -f rhods-operator-subscription.yaml您会看到类似如下的输出:
subscription.operators.coreos.com/rhods-operator created
验证
在 OpenShift Web 控制台中,点 Operators → Installed Operators,并确认 Red Hat OpenShift AI Operator 显示了以下状态之一:
-
Installing- 安装正在进行中;等待它变为Succeeded。这可能需要几分钟。 -
Succeeded- 安装成功。
-
在 Web 控制台中,点 Home → Projects 并确认以下项目命名空间可见并列为
Active:-
redhat-ods-applications -
redhat-ods-monitoring -
redhat-ods-operator
-
3.4.2. 使用 Web 控制台安装 Red Hat OpenShift AI Operator 复制链接链接已复制到粘贴板!
以下流程演示了如何使用 OpenShift Web 控制台在集群中安装 Red Hat OpenShift AI Operator。您必须在集群中安装 OpenShift AI 组件前安装 Operator。
先决条件
- 您有一个正在运行的 OpenShift 集群,版本 4.14 或更高版本,配置了可动态置备的默认存储类。
- 具有集群管理员特权。
- 您已将所需的容器镜像镜像到私有 registry。对于 断开连接的安装,请参阅将镜像镜像到私有 registry。
流程
- 以集群管理员身份登录 OpenShift Web 控制台。
- 在 Web 控制台中,点 Operators → OperatorHub。
- 在 OperatorHub 页面中,通过滚动浏览可用的 Operator 或在 Filter by keyword 框中输入 Red Hat OpenShift AI 来找到 Red Hat OpenShift AI。
- 点 Red Hat OpenShift AI 标题。Red Hat OpenShift AI Information 窗格将打开。
- 选择一个频道。有关订阅更新频道的详情,请参阅了解更新频道。
- 选择 版本。
- 点 Install。此时会打开 Install Operator 页面。
- 根据需要查看或更改所选频道和版本。
-
对于 Installation 模式,请注意唯一可用的值为
All namespaces on the cluster (default)。此安装模式使 Operator 可供集群中的所有命名空间使用。 -
对于 Installed Namespace,选择
Operator recommended Namespace: redhat-ods-operator。 对于 更新批准,请选择以下更新策略之一:
-
自动:您的环境会尝试根据镜像的内容在可用时安装新的更新。 手动:集群管理员必须在安装开始前批准任何新更新。重要默认情况下,Red Hat OpenShift AI Operator 遵循一个后续更新过程。这意味着,如果当前版本和目标版本之间存在多个版本,Operator Lifecycle Manager (OLM)会将 Operator 升级到每个中间版本,然后再将其升级到最终的目标版本。
如果配置自动升级,OLM 会自动将 Operator 升级到 最新的可用版本。如果配置手动升级,集群管理员必须手动批准当前版本和最终目标版本之间的每个后续更新。
有关支持的版本的详情,请查看 Red Hat OpenShift AI 生命周期 知识库文章。
-
点 Install。
此时会出现 Installing Operators 窗格。安装完成后,Operator 名称旁边会出现一个复选标记。
验证
在 OpenShift Web 控制台中,点 Operators → Installed Operators,并确认 Red Hat OpenShift AI Operator 显示了以下状态之一:
-
Installing- 安装正在进行中;等待它变为Succeeded。这可能需要几分钟。 -
Succeeded- 安装成功。
-
在 Web 控制台中,点 Home → Projects 并确认以下项目命名空间可见并列为
Active:-
redhat-ods-applications -
redhat-ods-monitoring -
redhat-ods-operator
-
3.5. 安装和管理 Red Hat OpenShift AI 组件。 复制链接链接已复制到粘贴板!
您可以使用 OpenShift 命令行界面(CLI)或 OpenShift Web 控制台在 OpenShift 集群上安装和管理 Red Hat OpenShift AI 的组件。
3.5.1. 使用 CLI 安装 Red Hat OpenShift AI 组件 复制链接链接已复制到粘贴板!
要使用 OpenShift 命令行界面(CLI)安装 Red Hat OpenShift AI 组件,您必须创建和配置 DataScienceCluster 对象。
以下流程描述了如何创建和配置 DataScienceCluster 对象,以作为新安装的一部分安装 Red Hat OpenShift AI 组件。
- 有关在安装后更改 OpenShift AI 组件的安装状态的详情,请参阅使用 Web 控制台更新 Red Hat OpenShift AI 组件的 安装状态。
- 有关升级 OpenShift AI 的详情,请参考 在断开连接的环境中升级 OpenShift AI Self-Managed。
先决条件
- Red Hat OpenShift AI Operator 安装在 OpenShift 集群中。请参阅安装 Red Hat OpenShift AI Operator。
- 具有集群管理员特权。
- 您已下载并安装 OpenShift 命令行界面 (CLI)。请参阅安装 OpenShift CLI。
流程
- 打开一个新的终端窗口。
按照以下步骤,以集群管理员身份登录到 OpenShift 集群:
- 在 OpenShift Web 控制台右上角,单击您的用户名,然后选择 Copy login command。
- 登录后,单击 Display token。
使用此令牌命令复制登录,并将它粘贴到 OpenShift 命令行界面(CLI)中。
$ oc login --token=<token> --server=<openshift_cluster_url>
创建
DataScienceCluster对象自定义资源 (CR) 文件,如rhods-operator-dsc.yaml。apiVersion: datasciencecluster.opendatahub.io/v1 kind: DataScienceCluster metadata: name: default-dsc spec: components: codeflare: managementState: Removed dashboard: managementState: Removed datasciencepipelines: managementState: Removed kserve: managementState: Removed1 2 kueue: managementState: Removed modelmeshserving: managementState: Removed ray: managementState: Removed trainingoperator: managementState: Removed trustyai: managementState: Removed workbenches: managementState: Removed- 1
- 要完全安装 KServe 组件(由单模型服务平台用来提供大型模型),您必须为 Red Hat OpenShift Service Mesh 和 Red Hat OpenShift Serverless 安装 Operator 并执行额外的配置。请参阅 安装单模式服务平台。
- 2
- 如果您还没有 启用 KServe 组件(即,将
managementState字段设置为Removed),还必须禁用依赖 Service Mesh 组件以避免错误。请参阅禁用 KServe 依赖项。
在 CR 的
spec.components部分中,对于所示的每个 OpenShift AI 组件,将managementState字段的值设置为Managed或Removed。这些值定义如下:- 受管
- Operator 会主动管理组件,安装它,并尝试保持其活跃。只有在组件安全时,Operator 才会升级组件。
- 删除
- Operator 会主动管理组件,但不安装它。如果组件已安装,Operator 将尝试将其删除。
重要- 要了解如何完全安装 KServe 组件(由 single-model 服务平台用来为大型模型提供服务),请参阅安装单model 服务平台。
-
如果您还没有 启用 KServe 组件(即,将
managementState字段设置为Removed),还必须禁用依赖 Service Mesh 组件以避免错误。请参阅禁用 KServe 依赖项。 - 要了解如何安装分布式工作负载组件,请参阅安装分布式工作负载组件。
- 要了解如何在断开连接的环境中运行分布式工作负载,请参阅 在断开连接的环境中运行分布式数据科学工作负载。
在 OpenShift 集群中创建
DataScienceCluster对象来安装指定的 OpenShift AI 组件。$ oc create -f rhods-operator-dsc.yaml您会看到类似如下的输出:
datasciencecluster.datasciencecluster.opendatahub.io/default created
验证
确认每个组件都有一个正在运行的 pod:
- 在 OpenShift Web 控制台中,点击 Workloads → Pods。
-
在页面顶部的 Project 列表中,选择
redhat-ods-applications。 - 在 applications 命名空间中,确认您安装的每个 OpenShift AI 组件都有运行 pod。
确认所有安装的组件的状态:
- 在 OpenShift Web 控制台中,点 Operators → Installed Operators。
- 点 Red Hat OpenShift AI Operator。
-
点 Data Science Cluster 选项卡,再选择名为
default-dsc的DataScienceCluster对象。 - 选择 YAML 选项卡。
在
installedComponents部分中,确认您安装的组件的状态为true。注意如果组件显示 CR 的
spec.components部分中的component-name: {}格式,则不会安装该组件。
3.5.2. 使用 Web 控制台安装 Red Hat OpenShift AI 组件 复制链接链接已复制到粘贴板!
要使用 OpenShift Web 控制台安装 Red Hat OpenShift AI 组件,您必须创建和配置 DataScienceCluster 对象。
以下流程描述了如何创建和配置 DataScienceCluster 对象,以作为新安装的一部分安装 Red Hat OpenShift AI 组件。
- 有关在安装后更改 OpenShift AI 组件的安装状态的详情,请参阅使用 Web 控制台更新 Red Hat OpenShift AI 组件的 安装状态。
- 有关升级 OpenShift AI 的详情,请参考 在断开连接的环境中升级 OpenShift AI Self-Managed。
先决条件
- Red Hat OpenShift AI Operator 安装在 OpenShift 集群中。请参阅安装 Red Hat OpenShift AI Operator。
- 具有集群管理员特权。
流程
- 以集群管理员身份登录 OpenShift Web 控制台。
- 在 Web 控制台中,点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
- 点 Data Science Cluster 选项卡。
- 点 Create DataScienceCluster。
对于 Configure via,选择 YAML view。
嵌入式 YAML 编辑器会打开
DataScienceCluster对象的默认自定义资源(CR),如下例所示:apiVersion: datasciencecluster.opendatahub.io/v1 kind: DataScienceCluster metadata: name: default-dsc spec: components: codeflare: managementState: Removed dashboard: managementState: Removed datasciencepipelines: managementState: Removed kserve: managementState: Removed1 2 kueue: managementState: Removed modelmeshserving: managementState: Removed ray: managementState: Removed trainingoperator: managementState: Removed trustyai: managementState: Removed workbenches: managementState: Removed- 1
- 要完全安装 KServe 组件(由单模型服务平台用来提供大型模型),您必须为 Red Hat OpenShift Service Mesh 和 Red Hat OpenShift Serverless 安装 Operator 并执行额外的配置。请参阅 安装单模式服务平台。
- 2
- 如果您还没有 启用 KServe 组件(即,将
managementState字段设置为Removed),还必须禁用依赖 Service Mesh 组件以避免错误。请参阅禁用 KServe 依赖项。
在 CR 的
spec.components部分中,对于所示的每个 OpenShift AI 组件,将managementState字段的值设置为Managed或Removed。这些值定义如下:- 受管
- Operator 会主动管理组件,安装它,并尝试保持其活跃。只有在组件安全时,Operator 才会升级组件。
- 删除
- Operator 会主动管理组件,但不安装它。如果组件已安装,Operator 将尝试将其删除。
重要- 要了解如何完全安装 KServe 组件(由 single-model 服务平台用来为大型模型提供服务),请参阅安装单model 服务平台。
-
如果您还没有 启用 KServe 组件(即,将
managementState字段设置为Removed),还必须禁用依赖 Service Mesh 组件以避免错误。请参阅禁用 KServe 依赖项。 - 要了解如何安装分布式工作负载组件,请参阅安装分布式工作负载组件。
- 要了解如何在断开连接的环境中运行分布式工作负载,请参阅 在断开连接的环境中运行分布式数据科学工作负载。
- 点 Create。
验证
确认每个组件都有一个正在运行的 pod:
- 在 OpenShift Web 控制台中,点击 Workloads → Pods。
-
在页面顶部的 Project 列表中,选择
redhat-ods-applications。 - 在 applications 命名空间中,确认您安装的每个 OpenShift AI 组件都有运行 pod。
确认所有安装的组件的状态:
- 在 OpenShift Web 控制台中,点 Operators → Installed Operators。
- 点 Red Hat OpenShift AI Operator。
-
点 Data Science Cluster 选项卡,再选择名为
default-dsc的DataScienceCluster对象。 - 选择 YAML 选项卡。
在
installedComponents部分中,确认您安装的组件的状态为true。注意如果组件显示 CR 的
spec.components部分中的component-name: {}格式,则不会安装该组件。
3.5.3. 使用 Web 控制台更新 Red Hat OpenShift AI 组件的安装状态 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Web 控制台更新 OpenShift 集群中 Red Hat OpenShift AI 组件的安装状态。
如果您升级了 OpenShift AI,升级过程会自动使用之前版本的 DataScienceCluster 对象的值。新组件不会自动添加到 DataScienceCluster 对象中。
升级 OpenShift AI 后:
-
检查默认的
DataScienceCluster对象,以检查并选择性地更新现有组件的managementState状态。 -
将任何新组件添加到
DataScienceCluster对象中。
先决条件
- Red Hat OpenShift AI Operator 安装在 OpenShift 集群中。
- 具有集群管理员特权。
流程
- 以集群管理员身份登录 OpenShift Web 控制台。
- 在 Web 控制台中,点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
- 点 Data Science Cluster 选项卡。
-
在 DataScienceClusters 页面中,点
default对象。 点 YAML 标签。
嵌入式 YAML 编辑器会打开显示
DataScienceCluster对象的默认自定义资源(CR),如下例所示:apiVersion: datasciencecluster.opendatahub.io/v1 kind: DataScienceCluster metadata: name: default-dsc spec: components: codeflare: managementState: Removed dashboard: managementState: Removed datasciencepipelines: managementState: Removed kserve: managementState: Removed kueue: managementState: Removed modelmeshserving: managementState: Removed ray: managementState: Removed trainingoperator: managementState: Removed trustyai: managementState: Removed workbenches: managementState: Removed在 CR 的
spec.components部分中,对于所示的每个 OpenShift AI 组件,将managementState字段的值设置为Managed或Removed。这些值定义如下:- 受管
- Operator 会主动管理组件,安装它,并尝试保持其活跃。只有在组件安全时,Operator 才会升级组件。
- 删除
- Operator 会主动管理组件,但不安装它。如果组件已安装,Operator 将尝试将其删除。
重要- 要了解如何安装 KServe 组件(由单模式服务平台用来为大型模型提供服务),请参阅安装单model服务平台。
-
如果您还没有 启用 KServe 组件(即,将
managementState字段设置为Removed),还必须禁用依赖 Service Mesh 组件以避免错误。请参阅禁用 KServe 依赖项。 - 要了解如何安装分布式工作负载功能,请参阅安装分布式工作负载组件。
- 要了解如何在断开连接的环境中运行分布式工作负载,请参阅 在断开连接的环境中运行分布式数据科学工作负载。
点击 Save。
对于您更新的任何组件,OpenShift AI 会启动一个推出影响所有 Pod 来使用更新的镜像。
验证
确认每个组件都有一个正在运行的 pod:
- 在 OpenShift Web 控制台中,点击 Workloads → Pods。
-
在页面顶部的 Project 列表中,选择
redhat-ods-applications。 - 在 applications 命名空间中,确认您安装的每个 OpenShift AI 组件都有运行 pod。
确认所有安装的组件的状态:
- 在 OpenShift Web 控制台中,点 Operators → Installed Operators。
- 点 Red Hat OpenShift AI Operator。
-
点 Data Science Cluster 选项卡,再选择名为
default-dsc的DataScienceCluster对象。 - 选择 YAML 选项卡。
在
installedComponents部分中,确认您安装的组件的状态为true。注意如果组件显示 CR 的
spec.components部分中的component-name: {}格式,则不会安装该组件。
第 4 章 安装分布式工作负载组件 复制链接链接已复制到粘贴板!
要在 OpenShift AI 中使用分布式工作负载功能,您必须安装几个组件。
先决条件
-
已使用
cluster-admin角色登录到 OpenShift,您可以访问数据科学项目。 - 已安装 Red Hat OpenShift AI。
- 您有足够的资源。除了 安装和部署 OpenShift AI (用于断开连接的环境) 中描述的最低 OpenShift AI 资源外,请参阅 在断开连接的环境中部署 OpenShift AI,您需要 1.6 vCPU 和 2 GiB 内存来部署分布式工作负载基础架构。
- 您已删除了 CodeFlare Operator 的任何以前安装实例,如 知识库解决方案 如何从数据科学集群中的单独安装的 CodeFlare Operator 迁移。
如果要使用图形处理单元(GPU),在 OpenShift AI 中启用了 GPU 支持。如果使用 NVIDIA GPU,请参阅启用 NVIDIA GPU。如果使用 AMD GPU,请参阅 AMD GPU 集成。
注意红帽支持在同一集群中使用加速器。红帽不支持在加速器之间远程直接内存访问(RDMA),或使用网络上的加速器,例如使用 NVIDIA GPUDirect 或 NVLink 等技术。
如果要使用自签名证书,请将它们添加到中央证书颁发机构(CA)捆绑包中,如使用 证书 (用于断开连接的环境)中所述,请参阅使用证书。不需要额外的配置来将这些证书与分布式工作负载一起使用。集中配置的自签名证书会在以下挂载点的工作负载 pod 中自动可用:
集群范围的 CA 捆绑包:
/etc/pki/tls/certs/odh-trusted-ca-bundle.crt /etc/ssl/certs/odh-trusted-ca-bundle.crt自定义 CA 捆绑包:
/etc/pki/tls/certs/odh-ca-bundle.crt /etc/ssl/certs/odh-ca-bundle.crt
流程
- 在 OpenShift 控制台中,点 Operators → Installed Operators。
- 搜索 Red Hat OpenShift AI Operator,然后点 Operator 名称以打开 Operator 详情页面。
- 点 Data Science Cluster 选项卡。
- 点默认实例名称(如 default-dsc)打开实例详情页面。
- 点 YAML 选项卡显示实例规格。
启用所需的分布式工作负载组件。在
spec.components部分中,为所需组件正确设置managementState字段:-
如果要使用 CodeFlare 框架调优模型,请启用
codeflare、kue和ray组件。 -
如果要使用 Kubeflow Training Operator 调优模型,请启用
kue和trainingoperator组件。 - 所需的组件列表取决于分布式工作负载是否从管道或笔记本运行,如下表所示。
Expand 表 4.1. 分布式工作负载所需的组件 组件 仅限管道 仅限笔记本 Pipelines 和笔记本 codeflare受管受管受管dashboard受管受管受管datasciencepipelines受管删除受管kueue受管受管受管ray受管受管受管trainingoperator受管受管受管workbenches删除受管受管-
如果要使用 CodeFlare 框架调优模型,请启用
-
点击 Save。片刻后,处于
Managed状态的组件已就绪。
验证
检查 codeflare-operator-manager、kuberay-operator 和 kueue-controller-manager pod 的状态,如下所示:
- 在 OpenShift 控制台中,从 Project 列表中选择 redhat-ods-applications。
- 点 Workloads → Deployments。
搜索 codeflare-operator-manager,kuberay-operator, 和 kueue-controller-manager 部署。在每个情形中,按如下所示检查状态:
- 单击部署名称以打开部署详情页面。
- 点 Pods 选项卡。
检查 pod 状态。
当 codeflare-operator-manager- <pod-id& gt;、kuberay-operator- <pod-id>、和 kue-controller-manager-<pod-id > pod 的状态为 Running 时,pod 就可以使用。
- 要查看每个 pod 的更多信息,请点 pod 名称以打开 pod 详情页面,然后点 Logs 选项卡。
下一步
配置分布式工作负载功能,如 管理分布式工作负载 中所述。
第 5 章 安装单模式服务平台 复制链接链接已复制到粘贴板!
5.1. 关于单模式服务平台 复制链接链接已复制到粘贴板!
为了部署大型模型,如大型语言模型(LLMs),OpenShift AI 包含一个基于 KServe 组件的单模型服务平台。要安装单型号服务平台,需要以下组件:
- KServe :一种 Kubernetes 自定义资源定义(CRD),编配所有类型的模型的模型服务。KServe 包括实现给定模型服务器的加载的模型运行时。KServe 还处理部署对象、存储访问和网络设置的生命周期。
- Red Hat OpenShift Serverless :一个云原生开发模型,允许无服务器部署模型。OpenShift Serverless 基于开源 Knative 项目。
Red Hat OpenShift Service Mesh :一个服务网格网络层,用于管理流量流并强制实施访问策略。OpenShift Service Mesh 基于开源 Istio 项目。
注意目前,只支持 OpenShift Service Mesh v2。如需更多信息,请参阅 支持的配置。
您可以手动安装单型号服务平台,或自动安装:
- 自动安装
-
如果您还没有在 OpenShift 集群上创建
ServiceMeshControlPlane或KNativeServing资源,您可以将 Red Hat OpenShift AI Operator 配置为安装 KServe 并配置其依赖项。如需更多信息,请参阅配置 KServe 的自动安装 - 手动安装
-
如果您已在 OpenShift 集群上创建了
ServiceMeshControlPlane或KNativeServing资源,则无法 配置 Red Hat OpenShift AI Operator 来安装 KServe 并配置其依赖项。在这种情况下,您必须手动安装 KServe。如需更多信息,请参阅 手动安装 KServe。
5.2. 配置 KServe 的自动安装 复制链接链接已复制到粘贴板!
如果您还没有在 OpenShift 集群上创建 ServiceMeshControlPlane 或 KNativeServing 资源,您可以将 Red Hat OpenShift AI Operator 配置为安装 KServe 并配置其依赖项。
如果您在集群中创建了 ServiceMeshControlPlane 或 KNativeServing 资源,Red Hat OpenShift AI Operator 无法安装 KServe 并配置其依赖项,且安装不会继续。在这种情况下,您必须按照手动安装说明来安装 KServe。
先决条件
- 具有集群管理员特权。
- 您的集群有一个有 4 个 CPU 和 16 GB 内存的节点。
- 您已下载并安装 OpenShift 命令行界面 (CLI)。如需更多信息 ,请参阅安装 OpenShift CLI。
已安装 Red Hat OpenShift Service Mesh Operator 和依赖的 Operator。
注意要启用 KServe 的自动安装,请只 为 Red Hat OpenShift Service Mesh 安装所需的 Operator。不要执行任何其他配置或创建
ServiceMeshControlPlane资源。已安装 Red Hat OpenShift Serverless Operator。
注意要启用 KServe 的自动安装,请只 安装 Red Hat OpenShift Serverless Operator。不要执行任何其他配置或创建
KNativeServing资源。-
已安装 Red Hat OpenShift AI Operator 并创建了
DataScienceCluster对象。 -
要将 Authorino 添加为授权提供程序,以便您可以为部署的模型启用令牌授权,已安装了
Red Hat - AuthorinoOperator。请参阅 安装 Authorino Operator。
流程
- 以集群管理员身份登录 OpenShift Web 控制台。
- 在 Web 控制台中,点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
按照如下所示安装 OpenShift Service Mesh:
- 点 DSC 初始化选项卡。
- 点 default-dsci 对象。
- 点 YAML 标签。
在
spec部分中,验证serviceMesh组件的managementState字段的值是否已设置为Managed,如下所示:spec: applicationsNamespace: redhat-ods-applications monitoring: managementState: Managed namespace: redhat-ods-monitoring serviceMesh: controlPlane: metricsCollection: Istio name: data-science-smcp namespace: istio-system managementState: Managed注意不要更改为
serviceMesh组件指定的istio-system命名空间。不支持其他命名空间值。点击 Save。
根据添加到
DSCInitialization对象的配置,Red Hat OpenShift AI Operator 安装 OpenShift Service Mesh。
安装 KServe 和 OpenShift Serverless,如下所示:
- 在 Web 控制台中,点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
- 点 Data Science Cluster 选项卡。
- 单击 default-dsc DSC 对象。
- 点 YAML 标签。
在
spec.components部分中,配置kserve组件,如下所示。spec: components: kserve: managementState: Managed serving: ingressGateway: certificate: secretName: knative-serving-cert type: OpenshiftDefaultIngress managementState: Managed name: knative-serving点击 Save。
上述配置为 OpenShift Serverless 创建一个入口网关,以接收来自 OpenShift Service Mesh 的流量。在这个配置中,观察以下详情:
-
显示的配置使用为 OpenShift 配置的默认入口证书来保护进入 OpenShift 集群的流量,并将证书存储在
secretName字段中指定的knative-serving-certsecret 中。 -
secretName字段只能在安装时设置。secretName字段的默认值为knative-serving-cert。必须手动对证书 secret 进行后续更改。 -
如果您在安装过程中没有使用默认的
secretName值,请在istio-system命名空间中创建一个名为knative-serving-cert的新 secret,然后重启istiod-datascience-smcp-<suffix>pod。 您可以通过更新
type字段的值来指定以下证书类型:-
provided -
selfSigned -
OpenshiftDefaultIngress
-
要使用自签名证书或提供您自己的证书,请更新
secretName字段的值以指定您的 secret 名称,并将type字段的值更改为SelfSigned或Provided。注意如果提供自己的证书,证书必须指定 OpenShift 集群的入口控制器使用的域名。您可以运行以下命令来检查这个值:
$ oc get ingresses.config.openshift.io cluster -o jsonpath='{.spec.domain}'-
对于
kserve和serving组件,您必须将managementState字段的值设置为Managed。将kserve.managementState设置为Managed触发器自动安装 KServe。将service.managementState设置为Managed会触发 OpenShift Serverless 自动安装。但是,如果kserve.managementState没有设置为Managed,则 不会触发 OpenShift Serverless 安装。
-
显示的配置使用为 OpenShift 配置的默认入口证书来保护进入 OpenShift 集群的流量,并将证书存储在
验证
验证 OpenShift Service Mesh 安装,如下所示:
- 在 Web 控制台中,点击 Workloads → Pods。
- 在项目列表中选择 istio-system。这是安装 OpenShift Service Mesh 的项目。
确认存在用于服务网格 control plane、入口网关和出口网关的 pod。这些 pod 具有以下示例中显示的命名模式:
NAME READY STATUS RESTARTS AGE istio-egressgateway-7c46668687-fzsqj 1/1 Running 0 22h istio-ingressgateway-77f94d8f85-fhsp9 1/1 Running 0 22h istiod-data-science-smcp-cc8cfd9b8-2rkg4 1/1 Running 0 22h
验证 OpenShift Serverless 的安装,如下所示:
- 在 Web 控制台中,点击 Workloads → Pods。
- 从项目列表中,选择 knative-serving。这是安装 OpenShift Serverless 的项目。
确认
knative-serving项目中有许多正在运行的 Pod,包括 activator、autoscaler、controller 和域映射 Pod,以及用于 Knative Istio 控制器(控制 OpenShift Serverless 和 OpenShift Service Mesh 集成)的 Pod。显示了一个示例。NAME READY STATUS RESTARTS AGE activator-7586f6f744-nvdlb 2/2 Running 0 22h activator-7586f6f744-sd77w 2/2 Running 0 22h autoscaler-764fdf5d45-p2v98 2/2 Running 0 22h autoscaler-764fdf5d45-x7dc6 2/2 Running 0 22h autoscaler-hpa-7c7c4cd96d-2lkzg 1/1 Running 0 22h autoscaler-hpa-7c7c4cd96d-gks9j 1/1 Running 0 22h controller-5fdfc9567c-6cj9d 1/1 Running 0 22h controller-5fdfc9567c-bf5x7 1/1 Running 0 22h domain-mapping-56ccd85968-2hjvp 1/1 Running 0 22h domain-mapping-56ccd85968-lg6mw 1/1 Running 0 22h domainmapping-webhook-769b88695c-gp2hk 1/1 Running 0 22h domainmapping-webhook-769b88695c-npn8g 1/1 Running 0 22h net-istio-controller-7dfc6f668c-jb4xk 1/1 Running 0 22h net-istio-controller-7dfc6f668c-jxs5p 1/1 Running 0 22h net-istio-webhook-66d8f75d6f-bgd5r 1/1 Running 0 22h net-istio-webhook-66d8f75d6f-hld75 1/1 Running 0 22h webhook-7d49878bc4-8xjbr 1/1 Running 0 22h webhook-7d49878bc4-s4xx4 1/1 Running 0 22h
验证 KServe 安装,如下所示:
- 在 Web 控制台中,点击 Workloads → Pods。
- 从项目列表中,选择 redhat-ods-applications。这是安装 OpenShift AI 组件的项目,包括 KServe。
确认项目包含 KServe 控制器管理器正在运行的 pod,如下例所示:
NAME READY STATUS RESTARTS AGE kserve-controller-manager-7fbb7bccd4-t4c5g 1/1 Running 0 22h odh-model-controller-6c4759cc9b-cftmk 1/1 Running 0 129m odh-model-controller-6c4759cc9b-ngj8b 1/1 Running 0 129m odh-model-controller-6c4759cc9b-vnhq5 1/1 Running 0 129m
5.3. 手动安装 KServe 复制链接链接已复制到粘贴板!
如果您已经安装了 Red Hat OpenShift Service Mesh Operator 并创建了 ServiceMeshControlPlane 资源,或者已安装 Red Hat OpenShift Serverless Operator 并创建了 KNativeServing 资源,Red Hat OpenShift AI Operator 无法安装 KServe 并配置其依赖项。在这种情况下,您必须手动安装 KServe。
本节中的步骤演示了如何执行 KServe 及其依赖项的新安装,并作为完整的安装和配置参考。如果您已经安装并配置了 OpenShift Service Mesh 或 OpenShift Serverless,您可能不需要遵循所有步骤。如果您不确定要将哪些更新应用到现有配置以使用 KServe,请联系红帽支持。
5.3.1. 安装 KServe 依赖项 复制链接链接已复制到粘贴板!
在安装 KServe 之前,您必须安装并配置一些依赖项。具体来说,您必须创建 Red Hat OpenShift Service Mesh 和 Knative Serving 实例,然后为 Knative Serving 配置安全网关。
目前,只支持 OpenShift Service Mesh v2。如需更多信息,请参阅 支持的配置。
5.3.2. 创建 OpenShift Service Mesh 实例 复制链接链接已复制到粘贴板!
以下流程演示了如何创建 Red Hat OpenShift Service Mesh 实例。
先决条件
- 具有集群管理员特权。
- 您的集群有一个有 4 个 CPU 和 16 GB 内存的节点。
- 您已下载并安装 OpenShift 命令行界面 (CLI)。请参阅安装 OpenShift CLI。
- 已安装 Red Hat OpenShift Service Mesh Operator 和依赖的 Operator。
流程
在一个终端窗口中,如果您还没有以集群管理员登录到 OpenShift 集群,请登录 OpenShift CLI,如下例所示:
$ oc login <openshift_cluster_url> -u <admin_username> -p <password>为 Red Hat OpenShift Service Mesh 创建所需的命名空间。
$ oc create ns istio-system您会看到以下输出:
namespace/istio-system created在名为
smcp.yaml的 YAML 文件中定义一个ServiceMeshControlPlane对象,其内容如下:apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: minimal namespace: istio-system spec: tracing: type: None addons: grafana: enabled: false kiali: name: kiali enabled: false prometheus: enabled: false jaeger: name: jaeger security: dataPlane: mtls: true identity: type: ThirdParty techPreview: meshConfig: defaultConfig: terminationDrainDuration: 35s gateways: ingress: service: metadata: labels: knative: ingressgateway proxy: networking: trafficControl: inbound: excludedPorts: - 8444 - 8022如需有关 YAML 文件中的值的更多信息,请参阅 Service Mesh control plane 配置参考。
创建服务网格 control plane。
$ oc apply -f smcp.yaml
验证
验证服务网格实例的创建,如下所示:
在 OpenShift CLI 中输入以下命令:
$ oc get pods -n istio-system前面的命令列出了
istio-system项目中运行的所有 pod。这是安装 OpenShift Service Mesh 的项目。确认存在用于服务网格 control plane、入口网关和出口网关的 pod。这些 pod 具有以下命名模式:
NAME READY STATUS RESTARTS AGE istio-egressgateway-7c46668687-fzsqj 1/1 Running 0 22h istio-ingressgateway-77f94d8f85-fhsp9 1/1 Running 0 22h istiod-data-science-smcp-cc8cfd9b8-2rkg4 1/1 Running 0 22h
5.3.3. 创建 Knative Serving 实例 复制链接链接已复制到粘贴板!
以下流程演示了如何安装 Knative Serving,然后创建实例。
先决条件
- 具有集群管理员特权。
- 您的集群有一个有 4 个 CPU 和 16 GB 内存的节点。
- 您已下载并安装 OpenShift 命令行界面 (CLI)。安装 OpenShift CLI.
- 您已创建了 Red Hat OpenShift Service Mesh 实例。
- 已安装 Red Hat OpenShift Serverless Operator。
流程
在一个终端窗口中,如果您还没有以集群管理员登录到 OpenShift 集群,请登录 OpenShift CLI,如下例所示:
$ oc login <openshift_cluster_url> -u <admin_username> -p <password>检查 Knative Serving 所需的项目(即 命名空间)是否已存在。
$ oc get ns knative-serving如果项目存在,您会看到类似以下示例的输出:
NAME STATUS AGE knative-serving Active 4d20h如果
knative-serving项目不存在,请创建它。$ oc create ns knative-serving您会看到以下输出:
namespace/knative-serving created在名为
default-smm.yaml的 YAML 文件中定义ServiceMeshMember对象,其内容如下:apiVersion: maistra.io/v1 kind: ServiceMeshMember metadata: name: default namespace: knative-serving spec: controlPlaneRef: namespace: istio-system name: minimal在
istio-system命名空间中创建ServiceMeshMember对象。$ oc apply -f default-smm.yaml您会看到以下输出:
servicemeshmember.maistra.io/default created在名为
knativeserving-istio.yaml的 YAML 文件中定义KnativeServing对象,其内容如下:apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving annotations: serverless.openshift.io/default-enable-http2: "true" spec: workloads: - name: net-istio-controller env: - container: controller envVars: - name: ENABLE_SECRET_INFORMER_FILTERING_BY_CERT_UID value: 'true' - annotations: sidecar.istio.io/inject: "true"1 sidecar.istio.io/rewriteAppHTTPProbers: "true"2 name: activator - annotations: sidecar.istio.io/inject: "true" sidecar.istio.io/rewriteAppHTTPProbers: "true" name: autoscaler ingress: istio: enabled: true config: features: kubernetes.podspec-affinity: enabled kubernetes.podspec-nodeselector: enabled kubernetes.podspec-tolerations: enabled前面的文件为
KnativeServing对象定义自定义资源(CR)。CR 还为每个激活器和自动扩展 pod 添加以下操作:注意如果为 Knative 服务配置自定义域,您可以使用 TLS 证书来保护映射的服务。要做到这一点,您必须创建一个 TLS secret,然后更新
DomainMappingCR 以使用您创建的 TLS secret。如需更多信息,请参阅 Red Hat OpenShift Serverless 文档中的使用 TLS 证书保护映射的服务。在指定的
knative-serving命名空间中创建KnativeServing对象。$ oc apply -f knativeserving-istio.yaml您会看到以下输出:
knativeserving.operator.knative.dev/knative-serving created
验证
查看
istio-system命名空间中的默认ServiceMeshMemberRoll对象。$ oc describe smmr default -n istio-system在
ServiceMeshMemberRoll对象的描述中,找到Status.Members字段,并确认它包含knative-serving命名空间。验证 Knative Serving 实例的创建,如下所示:
在 OpenShift CLI 中输入以下命令:
$ oc get pods -n knative-serving前面的命令列出了
knative-serving项目中运行的所有 Pod。这是在其中创建 Knative Serving 实例的项目。确认
knative-serving项目中有许多正在运行的 Pod,包括 activator、autoscaler、controller 和域映射 Pod,以及用于 Knative Istio 控制器的 Pod,用于控制 OpenShift Serverless 和 OpenShift Service Mesh 集成。显示了一个示例。NAME READY STATUS RESTARTS AGE activator-7586f6f744-nvdlb 2/2 Running 0 22h activator-7586f6f744-sd77w 2/2 Running 0 22h autoscaler-764fdf5d45-p2v98 2/2 Running 0 22h autoscaler-764fdf5d45-x7dc6 2/2 Running 0 22h autoscaler-hpa-7c7c4cd96d-2lkzg 1/1 Running 0 22h autoscaler-hpa-7c7c4cd96d-gks9j 1/1 Running 0 22h controller-5fdfc9567c-6cj9d 1/1 Running 0 22h controller-5fdfc9567c-bf5x7 1/1 Running 0 22h domain-mapping-56ccd85968-2hjvp 1/1 Running 0 22h domain-mapping-56ccd85968-lg6mw 1/1 Running 0 22h domainmapping-webhook-769b88695c-gp2hk 1/1 Running 0 22h domainmapping-webhook-769b88695c-npn8g 1/1 Running 0 22h net-istio-controller-7dfc6f668c-jb4xk 1/1 Running 0 22h net-istio-controller-7dfc6f668c-jxs5p 1/1 Running 0 22h net-istio-webhook-66d8f75d6f-bgd5r 1/1 Running 0 22h net-istio-webhook-66d8f75d6f-hld75 1/1 Running 0 22h webhook-7d49878bc4-8xjbr 1/1 Running 0 22h webhook-7d49878bc4-s4xx4 1/1 Running 0 22h
5.3.4. 为 Knative Serving 创建安全网关 复制链接链接已复制到粘贴板!
要保护 Knative Serving 实例和服务网格之间的流量,您必须为 Knative Serving 实例创建安全网关。
以下流程演示了如何使用 OpenSSL 版本 3 或更高版本来生成通配符证书和密钥,然后使用它们为 Knative Serving 创建本地和入口网关。
如果您有自己的通配符证书和密钥在配置网关时指定,您可以跳过到此流程的第 11 步。
先决条件
- 具有集群管理员特权。
- 您已下载并安装 OpenShift 命令行界面 (CLI)。请参阅安装 OpenShift CLI。
- 您已创建了 Red Hat OpenShift Service Mesh 实例。
- 您已创建了 Knative Serving 实例。
- 如果要生成通配符证书和密钥,您已 下载并安装 OpenSSL 版本 3 或更高版本。
流程
在一个终端窗口中,如果您还没有以集群管理员登录到 OpenShift 集群,请登录 OpenShift CLI,如下例所示:
$ oc login <openshift_cluster_url> -u <admin_username> -p <password>重要如果您有自己的通配符证书和密钥在配置网关时指定,请跳至此步骤的第 11 步。
设置环境变量,以定义为网关生成通配符证书和密钥的基础目录。
$ export BASE_DIR=/tmp/kserve $ export BASE_CERT_DIR=${BASE_DIR}/certs设置环境变量以定义 OpenShift 集群的入口控制器使用的通用名称。
$ export COMMON_NAME=$(oc get ingresses.config.openshift.io cluster -o jsonpath='{.spec.domain}' | awk -F'.' '{print $(NF-1)"."$NF}')设置环境变量以定义 OpenShift 集群的入口控制器使用的域名。
$ export DOMAIN_NAME=$(oc get ingresses.config.openshift.io cluster -o jsonpath='{.spec.domain}')根据之前设置的环境变量,为证书生成创建所需的基础目录。
$ mkdir ${BASE_DIR} $ mkdir ${BASE_CERT_DIR}为生成通配符证书创建 OpenSSL 配置。
$ cat <<EOF> ${BASE_DIR}/openssl-san.config [ req ] distinguished_name = req [ san ] subjectAltName = DNS:*.${DOMAIN_NAME} EOF生成 root 证书。
$ openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 \ -subj "/O=Example Inc./CN=${COMMON_NAME}" \ -keyout ${BASE_CERT_DIR}/root.key \ -out ${BASE_CERT_DIR}/root.crt生成由 root 证书签名的通配符证书。
$ openssl req -x509 -newkey rsa:2048 \ -sha256 -days 3560 -nodes \ -subj "/CN=${COMMON_NAME}/O=Example Inc." \ -extensions san -config ${BASE_DIR}/openssl-san.config \ -CA ${BASE_CERT_DIR}/root.crt \ -CAkey ${BASE_CERT_DIR}/root.key \ -keyout ${BASE_CERT_DIR}/wildcard.key \ -out ${BASE_CERT_DIR}/wildcard.crt $ openssl x509 -in ${BASE_CERT_DIR}/wildcard.crt -text验证通配符证书。
$ openssl verify -CAfile ${BASE_CERT_DIR}/root.crt ${BASE_CERT_DIR}/wildcard.crt将脚本创建的通配符密钥和证书导出到新的环境变量。
$ export TARGET_CUSTOM_CERT=${BASE_CERT_DIR}/wildcard.crt $ export TARGET_CUSTOM_KEY=${BASE_CERT_DIR}/wildcard.key可选: 要将 您自己的 通配符密钥和证书导出到新环境变量,请输入以下命令:
$ export TARGET_CUSTOM_CERT=<path_to_certificate> $ export TARGET_CUSTOM_KEY=<path_to_key>注意在您提供的证书中,您必须指定 OpenShift 集群的入口控制器使用的域名。您可以运行以下命令来检查这个值:
$ oc get ingresses.config.openshift.io cluster -o jsonpath='{.spec.domain}'使用您为通配符证书和密钥设置的环境变量,在
istio-system命名空间中创建 TLS secret。$ oc create secret tls wildcard-certs --cert=${TARGET_CUSTOM_CERT} --key=${TARGET_CUSTOM_KEY} -n istio-system使用以下内容创建
gateways.yamlYAML 文件:apiVersion: v1 kind: Service1 metadata: labels: experimental.istio.io/disable-gateway-port-translation: "true" name: knative-local-gateway namespace: istio-system spec: ports: - name: http2 port: 80 protocol: TCP targetPort: 8081 selector: knative: ingressgateway type: ClusterIP --- apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: knative-ingress-gateway2 namespace: knative-serving spec: selector: knative: ingressgateway servers: - hosts: - '*' port: name: https number: 443 protocol: HTTPS tls: credentialName: wildcard-certs mode: SIMPLE --- apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: knative-local-gateway3 namespace: knative-serving spec: selector: knative: ingressgateway servers: - port: number: 8081 name: https protocol: HTTPS tls: mode: ISTIO_MUTUAL hosts: - "*"应用
gateways.yaml文件来创建定义的资源。$ oc apply -f gateways.yaml您会看到以下输出:
service/knative-local-gateway created gateway.networking.istio.io/knative-ingress-gateway created gateway.networking.istio.io/knative-local-gateway created
验证
查看您创建的网关。
$ oc get gateway --all-namespaces确认您看到在
knative-serving命名空间中创建的本地和入口网关,如下例所示:NAMESPACE NAME AGE knative-serving knative-ingress-gateway 69s knative-serving knative-local-gateway 2m
5.3.5. 安装 KServe 复制链接链接已复制到粘贴板!
要完成 KServe 的手动安装,您必须安装 Red Hat OpenShift AI Operator。然后,您可以将 Operator 配置为安装 KServe。
先决条件
流程
- 以集群管理员身份登录 OpenShift Web 控制台。
- 在 Web 控制台中,点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
要安装 KServe,请按如下所示配置 OpenShift Service Mesh 组件:
- 点 DSC 初始化选项卡。
- 点 default-dsci 对象。
- 点 YAML 标签。
在
spec部分,添加和配置serviceMesh组件,如下所示:spec: serviceMesh: managementState: Unmanaged- 点击 Save。
要安装 KServe,请配置 KServe 和 OpenShift Serverless 组件,如下所示:
- 在 Web 控制台中,点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
- 点 Data Science Cluster 选项卡。
- 单击 default-dsc DSC 对象。
- 点 YAML 标签。
在
spec.components部分中,配置kserve组件,如下所示:spec: components: kserve: managementState: Managed在
kserve组件中,添加服务组件并配置它,如下所示:spec: components: kserve: managementState: Managed serving: managementState: Unmanaged- 点击 Save。
5.3.6. 在 KServe 上配置持久性卷声明(PVC) 复制链接链接已复制到粘贴板!
在您的 inference 服务上启用持久性卷声明(PVC),以便您可以提高持久性存储。如需有关 PVC 的更多信息,请参阅了解持久性存储。
要启用 PVC,从 OpenShift AI 仪表板,选择 Project 下拉菜单并点 knative-serving。然后,按照 启用 PVC 支持 中的步骤操作。
验证
验证 inference 服务是否允许 PVC,如下所示:
- 在 OpenShift Web 控制台中,切换到 Administrator 视角。
- 点 Home → Search。
-
在 资源中,搜索
InferenceService。 - 点 inference 服务的名称。
- 点 YAML 标签。
确认显示
volumeMounts,类似于以下输出:apiVersion: "serving.kserve.io/v1beta1" kind: "InferenceService" metadata: name: "sklearn-iris" spec: predictor: model: runtime: kserve-mlserver modelFormat: name: sklearn storageUri: "gs://kfserving-examples/models/sklearn/1.0/model" volumeMounts: - name: my-dynamic-volume mountPath: /tmp/data volumes: - name: my-dynamic-volume persistentVolumeClaim: claimName: my-dynamic-pvc
5.3.7. 禁用 KServe 依赖项 复制链接链接已复制到粘贴板!
如果您还没有 启用 KServe 组件(即,将 managementState 字段设置为 Removed),还必须禁用依赖 Service Mesh 组件以避免错误。
先决条件
- 您已使用 OpenShift 命令行界面(CLI)或 Web 控制台来禁用 KServe 组件。
流程
- 以集群管理员身份登录 OpenShift Web 控制台。
- 在 Web 控制台中,点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
禁用 OpenShift Service Mesh 组件,如下所示:
- 点 DSC 初始化选项卡。
- 点 default-dsci 对象。
- 点 YAML 标签。
在
spec部分中,添加serviceMesh组件(如果还没有存在),并配置managementState字段,如下所示:spec: serviceMesh: managementState: Removed- 点击 Save。
验证
在 Web 控制台中,点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
Operator 详情页面将打开。
- 在 Conditions 部分中,确认没有 ReconcileComplete 条件,状态为 Unknown。
5.4. 为 single-model 服务平台添加授权供应商 复制链接链接已复制到粘贴板!
您可以将 Authorino 添加为 single-model 服务平台的授权供应商。通过添加授权供应商,您可以为平台上部署的模型启用令牌授权,这样可确保只有授权方能够对模型发出推测请求。
用于将 Authorino 添加为授权提供程序的方法取决于您如何安装单model服务平台。该平台的安装选项如下所述:
- 自动安装
如果您还没有在 OpenShift 集群上创建
ServiceMeshControlPlane或KNativeServing资源,您可以将 Red Hat OpenShift AI Operator 配置为安装 KServe 及其依赖项。您可以包含 Authorino 作为自动安装过程的一部分。有关自动安装的更多信息,包括 Authorino,请参阅配置 KServe 的自动安装。
- 手动安装
如果您已在 OpenShift 集群上创建了
ServiceMeshControlPlane或KNativeServing资源,则无法 配置 Red Hat OpenShift AI Operator 来安装 KServe 及其依赖项。在这种情况下,您必须手动安装 KServe。您还必须手动配置 Authorino。有关手动安装的更多信息,包括 Authorino,请参阅 手动安装 KServe。
5.4.1. 手动添加授权供应商 复制链接链接已复制到粘贴板!
您可以将 Authorino 添加为 single-model 服务平台的授权供应商。通过添加授权供应商,您可以为平台上部署的模型启用令牌授权,这样可确保只有授权方能够对模型发出推测请求。
要手动将 Authorino 添加为授权提供程序,您必须安装 Red Hat - Authorino Operator,创建 Authorino 实例,然后将 OpenShift Service Mesh 和 KServe 组件配置为使用该实例。
要手动添加授权供应商,您必须对 OpenShift Service Mesh 实例进行配置更新。要确保 OpenShift Service Mesh 实例处于支持状态,请只 进行本节中显示的更新。
先决条件
- 您已查看了将 Authorino 作为授权提供程序添加的选项,并将手动安装作为适当的选项。请参阅 添加授权提供程序。
- 您已手动安装 KServe 及其依赖项,包括 OpenShift Service Mesh。请参阅 手动安装 KServe。
-
手动安装 KServe 时,您可以将
serviceMesh组件的managementState字段的值设置为Unmanaged。手动添加 Authorino 需要此设置。请参阅 安装 KServe。
5.4.2. 安装 Red Hat Authorino Operator 复制链接链接已复制到粘贴板!
在将 Autorino 添加为授权提供程序前,您必须在 OpenShift 集群上安装 Red Hat - Authorino Operator。
先决条件
- 具有集群管理员特权。
流程
- 以集群管理员身份登录 OpenShift Web 控制台。
- 在 Web 控制台中,点 Operators → OperatorHub。
- 在 OperatorHub 页面上,在 Filter by keyword 字段中键入 Red Hat - Authorino。
- 点 Red Hat - Authorino Operator。
- 在 Red Hat - Authorino Operator 页面中,查看 Operator 信息,然后点 Install。
- 在 Install Operator 页面中,保留 Update channel,Version,Installation mode,Installed Namespace 和 Update Approval 的默认值。
- 点 Install。
验证
在 OpenShift Web 控制台中,点 Operators → Installed Operators,并确认
Red Hat - AuthorinoOperator 显示了以下状态之一:-
Installing- 安装正在进行中;等待它变为Succeeded。这可能需要几分钟。 -
Succeeded- 安装成功。
-
5.4.3. 创建 Authorino 实例 复制链接链接已复制到粘贴板!
在 OpenShift 集群上安装 Red Hat - Authorino Operator 时,您必须创建一个 Authorino 实例。
先决条件
-
已安装
Red Hat - AuthorinoOperator。 您有将资源添加到创建 OpenShift Service Mesh 实例的项目中的权限。请参阅创建 OpenShift Service Mesh 实例。
如需有关 OpenShift 权限的更多信息,请参阅使用 RBAC 定义和应用权限。
流程
- 打开一个新的终端窗口。
登录到 OpenShift 命令行界面(CLI),如下所示:
$ oc login <openshift_cluster_url> -u <username> -p <password>创建一个命名空间来安装 Authorino 实例。
$ oc new-project <namespace_for_authorino_instance>注意自动安装过程为 Authorino 实例创建一个名为
redhat-ods-applications-auth-provider的命名空间。考虑在手动安装时使用相同的命名空间名称。要在现有 OpenShift Service Mesh 实例中为 Authorino 实例注册新命名空间,请创建一个包含以下内容的新 YAML 文件:
apiVersion: maistra.io/v1 kind: ServiceMeshMember metadata: name: default namespace: <namespace_for_authorino_instance> spec: controlPlaneRef: namespace: <namespace_for_service_mesh_instance> name: <name_of_service_mesh_instance>- 保存 YAML 文件。
在集群中创建
ServiceMeshMember资源。$ oc create -f <file_name>.yaml要配置 Authorino 实例,请创建一个新的 YAML 文件,如下例所示:
apiVersion: operator.authorino.kuadrant.io/v1beta1 kind: Authorino metadata: name: authorino namespace: <namespace_for_authorino_instance> spec: authConfigLabelSelectors: security.opendatahub.io/authorization-group=default clusterWide: true listener: tls: enabled: false oidcServer: tls: enabled: false- 保存 YAML 文件。
在集群中创建
Authorino资源。$ oc create -f <file_name>.yaml对 Authorino 部署进行补丁以注入 Istio sidecar,这会使 OpenShift Service Mesh 实例的 Authorino 实例的一部分。
$ oc patch deployment <name_of_authorino_instance> -n <namespace_for_authorino_instance> -p '{"spec": {"template":{"metadata":{"labels":{"sidecar.istio.io/inject":"true"}}}} }'
验证
确认 Authorino 实例正在运行,如下所示:
检查您为 Authorino 实例创建的命名空间中运行的 pod (和容器),如下例所示:
$ oc get pods -n redhat-ods-applications-auth-provider -o="custom-columns=NAME:.metadata.name,STATUS:.status.phase,CONTAINERS:.spec.containers[*].name"确认输出类似以下示例:
NAME STATUS CONTAINERS authorino-6bc64bd667-kn28z Running authorino,istio-proxy如示例所示,有一个用于 Authorino 实例的 pod。pod 为 Authorino 和您注入的 Istio sidecar 容器。
5.4.4. 将 OpenShift Service Mesh 实例配置为使用 Authorino 复制链接链接已复制到粘贴板!
创建 Authorino 实例时,您必须将 OpenShift Service Mesh 实例配置为使用 Authorino 作为授权供应商。
为确保 OpenShift Service Mesh 实例处于支持状态,请只 进行以下流程中显示的配置更新。
先决条件
- 您已创建了 Authorino 实例,并在 OpenShift Service Mesh 实例中注册 Authorino 实例的命名空间。
- 有修改 OpenShift Service Mesh 实例的权限。请参阅创建 OpenShift Service Mesh 实例。
流程
在一个终端窗口中,如果您还没有以具有更新 OpenShift Service Mesh 实例的用户身份登录 OpenShift 集群,请登录 OpenShift CLI,如下例所示:
$ oc login <openshift_cluster_url> -u <username> -p <password>创建包含以下内容的新 YAML 文件:
spec: techPreview: meshConfig: extensionProviders: - name: redhat-ods-applications-auth-provider envoyExtAuthzGrpc: service: <name_of_authorino_instance>-authorino-authorization.<namespace_for_authorino_instance>.svc.cluster.local port: 50051- 保存 YAML 文件。
使用
oc patch命令将 YAML 文件应用到 OpenShift Service Mesh 实例。$ oc patch smcp <name_of_service_mesh_instance> --type merge -n <namespace_for_service_mesh_instance> --patch-file <file_name>.yaml重要只有在 OpenShift Service Mesh 实例中尚未指定其他扩展供应商时,才能应用显示的配置作为补丁。如果您已经指定了其他扩展供应商,则必须手动编辑
ServiceMeshControlPlane资源来添加配置。
验证
验证您的 Authorino 实例是否已作为扩展供应商添加到 OpenShift Service Mesh 配置中,如下所示:
检查 OpenShift Service Mesh 实例的
ConfigMap对象:$ oc get configmap istio-<name_of_service_mesh_instance> -n <namespace_for_service_mesh_instance> --output=jsonpath={.data.mesh}确认您看到与以下示例类似的输出,这表明 Authorino 实例已成功添加为扩展提供程序。
defaultConfig: discoveryAddress: istiod-data-science-smcp.istio-system.svc:15012 proxyMetadata: ISTIO_META_DNS_AUTO_ALLOCATE: "true" ISTIO_META_DNS_CAPTURE: "true" PROXY_XDS_VIA_AGENT: "true" terminationDrainDuration: 35s tracing: {} dnsRefreshRate: 300s enablePrometheusMerge: true extensionProviders: - envoyExtAuthzGrpc: port: 50051 service: authorino-authorino-authorization.opendatahub-auth-provider.svc.cluster.local name: opendatahub-auth-provider ingressControllerMode: "OFF" rootNamespace: istio-system trustDomain: null%
5.4.5. 为 KServe 配置授权 复制链接链接已复制到粘贴板!
要将 single-model 服务平台配置为使用 Authorino,您必须创建一个全局 AuthorizationPolicy 资源,该资源应用到部署模型时创建的 KServe predictor pod。另外,要考虑在对模型发出 inference 请求时发生的多个网络跃点,您必须创建一个 EnvoyFilter 资源,以持续将 HTTP 主机标头重置为最初包含在ference 请求中的标头。
先决条件
- 您已创建了 Authorino 实例,并将 OpenShift Service Mesh 配置为使用它。
- 有更新集群中的 KServe 部署的权限。
- 您有将资源添加到创建 OpenShift Service Mesh 实例的项目中的权限。请参阅创建 OpenShift Service Mesh 实例。
流程
在一个终端窗口中,如果您还没有以具有更新 KServe 部署权限的用户身份登录 OpenShift 集群,请登录 OpenShift CLI,如下例所示:
$ oc login <openshift_cluster_url> -u <username> -p <password>创建包含以下内容的新 YAML 文件:
apiVersion: security.istio.io/v1beta1 kind: AuthorizationPolicy metadata: name: kserve-predictor spec: action: CUSTOM provider: name: redhat-ods-applications-auth-provider1 rules: - to: - operation: notPaths: - /healthz - /debug/pprof/ - /metrics - /wait-for-drain selector: matchLabels: component: predictor- 1
- 您指定的名称必须与添加到 OpenShift Service Mesh 实例的扩展供应商名称匹配。
- 保存 YAML 文件。
在命名空间中为 OpenShift Service Mesh 实例创建
AuthorizationPolicy资源。$ oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yaml创建包含以下内容的另一个新 YAML 文件:
apiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata: name: activator-host-header spec: priority: 20 workloadSelector: labels: component: predictor configPatches: - applyTo: HTTP_FILTER match: listener: filterChain: filter: name: envoy.filters.network.http_connection_manager patch: operation: INSERT_BEFORE value: name: envoy.filters.http.lua typed_config: '@type': type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua inlineCode: | function envoy_on_request(request_handle) local headers = request_handle:headers() if not headers then return end local original_host = headers:get("k-original-host") if original_host then port_seperator = string.find(original_host, ":", 7) if port_seperator then original_host = string.sub(original_host, 0, port_seperator-1) end headers:replace('host', original_host) end end显示的
EnvoyFilter资源持续将 HTTP 主机标头重置为最初包含在任何推销请求中的标头。在命名空间中为您的 OpenShift Service Mesh 实例创建
EnvoyFilter资源。$ oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yaml
验证
检查
AuthorizationPolicy资源是否已成功创建。$ oc get authorizationpolicies -n <namespace_for_service_mesh_instance>确认输出类似以下示例:
NAME AGE kserve-predictor 28h检查
EnvoyFilter资源是否已成功创建。$ oc get envoyfilter -n <namespace_for_service_mesh_instance>确认输出类似以下示例:
NAME AGE activator-host-header 28h
第 6 章 安装多模式服务平台 复制链接链接已复制到粘贴板!
为了部署小型和中型模型,OpenShift AI 包含一个基于 ModelMesh 组件的 多模式服务平台。在多型号服务平台上,可以从同一模型服务器部署多个模型并共享服务器资源。
要安装多模型服务平台或 ModelMesh,请按照 使用 CLI 安装 Red Hat OpenShift AI 组件 或 使用 web 控制台安装 Red Hat OpenShift AI 组件 的步骤进行操作。
第 7 章 访问仪表板 复制链接链接已复制到粘贴板!
安装 OpenShift AI 并添加用户后,您可以访问 OpenShift AI 控制台的 URL,并与用户共享 URL,以便他们登录并处理其模型。
先决条件
- 您已在 OpenShift 集群上安装了 OpenShift AI。
- 您至少向 OpenShift AI 的用户组添加了一个用户。
流程
- 登录 OpenShift Web 控制台。
-
点应用程序启动程序(
)。
- 右键点 Red Hat OpenShift AI,再复制 OpenShift AI 实例的 URL。
- 为您的数据科学家提供这个实例 URL,以便他们登录到 OpenShift AI。
验证
- 确认您和您的用户可以使用实例 URL 登录 OpenShift AI。
第 8 章 启用 NVIDIA GPU 复制链接链接已复制到粘贴板!
在 OpenShift AI 中使用 NVIDIA GPU 之前,您必须安装 NVIDIA GPU Operator。
先决条件
- 已登陆到 OpenShift 集群。
-
在 OpenShift 集群中具有
cluster-admin角色。 - 已安装 NVIDIA GPU,并确认在您的环境中检测到它。
流程
要在断开连接的或 airgapped 环境中的 OpenShift 集群上启用 GPU 支持,请按照 NVIDIA 文档中的 断开连接的或 airgapped 环境中部署 GPU Operator 的说明。
重要安装 Node Feature Discovery (NFD) Operator 后,您必须创建一个 NodeFeatureDiscovery 实例。另外,在安装 NVIDIA GPU Operator 后,您必须创建一个 ClusterPolicy,并使用默认值填充。
删除 migration-gpu-status ConfigMap。
- 在 OpenShift Web 控制台中,切换到 Administrator 视角。
- 将项目设置为 All Projects 或 redhat-ods-applications,以确保您可以看到适当的 ConfigMap。
- 搜索 migration-gpu-status ConfigMap。
点操作菜单 (⋮) ,并从列表中选择 Delete ConfigMap。
此时会出现 Delete ConfigMap 对话框。
- 检查对话框,并确认您删除正确的 ConfigMap。
- 点击 Delete。
重启仪表板 replicaset。
- 在 OpenShift Web 控制台中,切换到 Administrator 视角。
- 点 Workloads → Deployments。
- 将项目设置为 All Projects 或 redhat-ods-applications,以确保您可以看到适当的部署。
- 搜索 rhods-dashboard 部署。
- 点操作菜单(HBAC),然后从列表中选择 Restart Rollout。
- 等待 Status 列指出 rollout 中的所有 pod 都完全重启。
验证
-
reset migration-gpu-status 实例存在于
AcceleratorProfile自定义资源定义(CRD)详情页面上的 Instances 选项卡中。 从 Administrator 视角中,进入 Operators → Installed Operators 页面。确认出现以下 Operator:
- NVIDIA GPU
- 节点功能发现(NFD)
- 内核模块管理(KMM)
在完成 Node Feature Discovery (NFD)和 NVIDIA GPU Operator 后,GPU 会被正确检测到。OpenShift 命令行界面(CLI)显示 GPU worker 节点的适当输出。例如:
# Expected output when the GPU is detected properly oc describe node <node name> ... Capacity: cpu: 4 ephemeral-storage: 313981932Ki hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 16076568Ki nvidia.com/gpu: 1 pods: 250 Allocatable: cpu: 3920m ephemeral-storage: 288292006229 hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 12828440Ki nvidia.com/gpu: 1 pods: 250
在 OpenShift AI 2.16 中,红帽支持在同一集群中使用加速器。红帽不支持在加速器之间远程直接内存访问(RDMA),或使用网络上的加速器,例如使用 NVIDIA GPUDirect 或 NVLink 等技术。
安装 NVIDIA GPU Operator 后,创建一个加速器配置集,如 使用加速器配置集 中所述。
第 9 章 使用证书 复制链接链接已复制到粘贴板!
OpenShift 中各种组件使用证书来验证对集群的访问。对于依赖自签名证书的集群,您可以将这些自签名证书添加到集群范围的证书颁发机构(CA)捆绑包中,并使用 Red Hat OpenShift AI 中的 CA 捆绑包。您还可以在与集群范围捆绑包分开的自定义 CA 捆绑包中使用自签名证书。管理员可以添加 CA 捆绑包,从所有命名空间中删除 CA 捆绑包,从单个命名空间中删除 CA 捆绑包,或者手动管理证书更改,而不是系统。
9.1. 了解 OpenShift AI 中的证书 复制链接链接已复制到粘贴板!
对于依赖自签名证书的 OpenShift 集群,您可以将这些自签名证书添加到集群范围的证书颁发机构(CA)捆绑包(ca-bundle.crt)中,并使用 Red Hat OpenShift AI 中的 CA 捆绑包。您还可以在与集群范围捆绑包分开的自定义 CA 捆绑包(odh-ca-bundle.crt)中使用自签名证书。
9.1.1. 如何注入 CA 捆绑包 复制链接链接已复制到粘贴板!
安装 OpenShift AI 后,Red Hat OpenShift AI Operator 会自动创建一个空的 odh-trusted-ca-bundle 配置文件(ConfigMap),Cluster Network Operator (CNO)将集群范围的 CA 捆绑包注入 odh-trusted-ca-bundle configMap,标签为 "config.openshift.io/inject-trusted-cabundle"。在受影响命名空间中部署的组件负责将此 configMap 挂载为部署 pod 中的卷。
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/part-of: opendatahub-operator
config.openshift.io/inject-trusted-cabundle: 'true'
name: odh-trusted-ca-bundle
在 CNO operator 注入捆绑包后,它会使用包含证书的 ca-bundle.crt 文件更新 ConfigMap。
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/part-of: opendatahub-operator
config.openshift.io/inject-trusted-cabundle: 'true'
name: odh-trusted-ca-bundle
data:
ca-bundle.crt: |
<BUNDLE OF CLUSTER-WIDE CERTIFICATES>
9.1.2. ConfigMap 的管理方式 复制链接链接已复制到粘贴板!
默认情况下,Red Hat OpenShift AI Operator 管理 odh-trusted-ca-bundle ConfigMap。如果要管理或删除 odh-trusted-ca-bundle ConfigMap,或者添加与集群范围 CA 捆绑包(ca-bundle.crt)分开的自定义 CA 捆绑包 (odh-ca-bundle.crt),您可以在 Operator 的 DSC Initialization (DSCI) 对象中使用 trustedCABundle 属性。
spec:
trustedCABundle:
managementState: Managed
customCABundle: ""
在 Operator 的 DSCI 对象中,您可以将 spec.trustedCABundle.managementState 字段设置为以下值:
-
Managed: Red Hat OpenShift AI Operator 管理odh-trusted-ca-bundleConfigMap,并将其添加到所有非保留现有命名空间和新命名空间中( ConfigMap 不会添加到任何保留或系统命名空间中,如default,openshift-\*或kube-*)。ConfigMap 会自动更新,以反映对customCABundle字段所做的任何更改。这是安装 Red Hat OpenShift AI 后的默认值。 -
Removed: Red Hat OpenShift AI Operator 删除odh-trusted-ca-bundleConfigMap (如果存在),并禁用在新命名空间中创建 ConfigMap。如果将此字段从Managed改为Removed,则odh-trusted-ca-bundleConfigMap 也会从命名空间中删除。这是将 Red Hat OpenShift AI 从 2.7 或更早版本升级到 2.16 后的默认值。 -
Unmanaged: Red Hat OpenShift AI Operator 不管理odh-trusted-ca-bundleConfigMap,允许管理员管理它。将managementState从Managed改为Unmanaged不会删除odh-trusted-ca-bundleConfigMap,但如果对customCABundle字段进行更改,则不会更新 ConfigMap。
在 Operator 的 DSCI 对象中,您可以将自定义证书添加到 spec.trustedCABundle.customCABundle 字段中。这会将包含证书的 odh-ca-bundle.crt 文件添加到 odh-trusted-ca-bundle ConfigMap 中,如下例所示:
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/part-of: opendatahub-operator
config.openshift.io/inject-trusted-cabundle: 'true'
name: odh-trusted-ca-bundle
data:
ca-bundle.crt: |
<BUNDLE OF CLUSTER-WIDE CERTIFICATES>
odh-ca-bundle.crt: |
<BUNDLE OF CUSTOM CERTIFICATES>
9.2. 添加 CA 捆绑包 复制链接链接已复制到粘贴板!
将证书颁发机构(CA)捆绑包添加到 OpenShift AI 中有两种方法。您可以使用以下任一方法:
-
对于依赖自签名证书的 OpenShift 集群,您可以将这些自签名证书添加到集群范围的证书颁发机构(CA)捆绑包(
ca-bundle.crt)中,并使用 Red Hat OpenShift AI 中的 CA 捆绑包。要使用此方法,请以集群管理员身份登录到 OpenShift,并按照 在安装过程中配置集群范围代理 中所述的步骤进行操作。 -
您可以在与集群范围捆绑包分开的自定义 CA 捆绑包中使用自签名证书(
odh-ca-bundle.crt)。要使用这个方法,请按照本节中的步骤操作。
先决条件
-
您可以访问 OpenShift 集群中的
DSCInitialization资源。 -
已安装 OpenShift 命令行界面(
oc),如 安装 OpenShift CLI 中所述。 - 您在新的 Red Hat OpenShift AI 安装中工作。如果您升级了 Red Hat OpenShift AI,请参阅升级后添加 CA 捆绑包。
流程
- 登录 OpenShift。
- 点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
- 点 DSC 初始化选项卡。
- 点 default-dsci 对象。
- 点 YAML 标签。
在
spec部分中,将自定义证书添加到trustedCABundle的customCABundle字段中,如下例所示:spec: trustedCABundle: managementState: Managed customCABundle: | -----BEGIN CERTIFICATE----- examplebundle123 -----END CERTIFICATE------ 点击 Save。
验证
如果使用集群范围的 CA 捆绑包,请运行以下命令验证所有非保留命名空间是否包含
odh-trusted-ca-bundleConfigMap:$ oc get configmaps --all-namespaces -l app.kubernetes.io/part-of=opendatahub-operator | grep odh-trusted-ca-bundle如果您使用自定义 CA 捆绑包,请运行以下命令来验证非保留命名空间是否包含
odh-trusted-ca-bundleConfigMap,并且 ConfigMap 包含您的customCABundle值。在以下命令中,example-namespace 是非保留的命名空间,examplebundle123 是 customCABundle 值。$ oc get configmap odh-trusted-ca-bundle -n example-namespace -o yaml | grep examplebundle123
9.3. 删除 CA 捆绑包 复制链接链接已复制到粘贴板!
您可以从 OpenShift AI 中的所有非保留命名空间中删除证书颁发机构(CA)捆绑包。此流程更改了默认配置,并禁用创建 odh-trusted-ca-bundle 配置文件(ConfigMap),如了解 OpenShift AI 中的证书中所述。
只有当您将 trustedCABundle 的 managementState 设置为 Removed 时,odh-trusted-ca-bundle ConfigMap 才会从命名空间中删除;删除 DSC 初始化不会删除 ConfigMap。
要只从单个命名空间中删除 CA 捆绑包,请参阅从命名空间中删除 CA 捆绑包。
先决条件
- 具有集群管理员特权。
-
已安装 OpenShift 命令行界面(
oc),如 安装 OpenShift CLI 中所述。
流程
- 在 OpenShift Web 控制台中,点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
- 点 DSC 初始化选项卡。
- 点 default-dsci 对象。
- 点 YAML 标签。
在
spec部分中,将trustedCABundle的managementState字段的值改为Removed:spec: trustedCABundle: managementState: Removed- 点击 Save。
验证
运行以下命令,以验证
odh-trusted-ca-bundleConfigMap 是否已从所有命名空间中移除:$ oc get configmaps --all-namespaces | grep odh-trusted-ca-bundle该命令不应返回任何 ConfigMap。
9.4. 从命名空间中删除 CA 捆绑包 复制链接链接已复制到粘贴板!
您可以从 OpenShift AI 中的独立命名空间中删除自定义证书颁发机构(CA)捆绑包。这个过程禁用只为指定命名空间创建 odh-trusted-ca-bundle 配置文件(ConfigMap)。
要从所有命名空间中删除证书捆绑包,请参阅 删除 CA 捆绑包。
先决条件
- 具有集群管理员特权。
-
已安装 OpenShift 命令行界面(
oc),如 安装 OpenShift CLI 中所述。
流程
运行以下命令以从命名空间中删除 CA 捆绑包。在以下命令中,example-namespace 是非保留命名空间。
$ oc annotate ns example-namespace security.opendatahub.io/inject-trusted-ca-bundle=false
验证
运行以下命令,以验证已从命名空间中删除 CA 捆绑包。在以下命令中,example-namespace 是非保留命名空间。
$ oc get configmap odh-trusted-ca-bundle -n example-namespace该命令应该返回
configmaps "odh-trusted-ca-bundle" not found。
9.5. 管理证书 复制链接链接已复制到粘贴板!
安装 OpenShift AI 后,Red Hat OpenShift AI Operator 会创建 odh-trusted-ca-bundle 配置文件(ConfigMap),其中包含可信 CA 捆绑包,并将其添加到集群中的所有新和非保留命名空间中。默认情况下,Red Hat OpenShift AI Operator 管理 odh-trusted-ca-bundle ConfigMap,并在对 CA 捆绑包进行任何更改时自动更新。您可以选择管理 odh-trusted-ca-bundle ConfigMap,而不是允许 Red Hat OpenShift AI Operator 管理它。
先决条件
- 具有集群管理员特权。
流程
- 在 OpenShift Web 控制台中,点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
- 点 DSC 初始化选项卡。
- 点 default-dsci 对象。
- 点 YAML 标签。
在
spec部分中,将trustedCABundle的managementState字段的值改为Unmanaged,如下所示:spec: trustedCABundle: managementState: Unmanaged点击 Save。
请注意,将
managementState从Managed改为Unmanaged不会删除odh-trusted-ca-bundleConfigMap,但如果对customCABundle字段进行更改,则不会更新 ConfigMap。
验证
在
spec部分中,为trustedCABundle设置或更改customCABundle字段的值,例如:spec: trustedCABundle: managementState: Unmanaged customCABundle: example123- 点击 Save。
- 点 Workloads → ConfigMaps。
- 从项目列表中选择一个项目。
-
点
odh-trusted-ca-bundleConfigMap。 -
点 YAML 选项卡,并验证
customCABundle字段的值是否没有更新。
9.6. 使用自签名证书访问 S3 兼容对象存储 复制链接链接已复制到粘贴板!
要使用自签名证书在 OpenShift 集群中部署的对象存储解决方案或数据库,您必须将 OpenShift AI 配置为信任集群的证书颁发机构(CA)。
每个命名空间都有一个名为 kube-root-ca.crt 的 ConfigMap,其中包含内部 API 服务器的 CA 证书。使用以下步骤将 OpenShift AI 配置为信任 kube-root-ca.crt 发布的证书。
或者,您可以使用 OpenShift 控制台添加自定义 CA 捆绑包,如 添加 CA 捆绑包 中所述。
先决条件
- 具有集群管理员特权。
- 您已下载并安装 OpenShift 命令行界面 (CLI)。请参阅安装 OpenShift CLI。
- 您已在 OpenShift 集群中部署了对象存储解决方案或数据库。
流程
在一个终端窗口中,登录到 OpenShift CLI,如下例所示:
oc login api.<cluster_name>.<cluster_domain>:6443 --web运行以下命令来获取当前的 OpenShift AI 可信 CA 配置并将其存储在新文件中:
oc get dscinitializations.dscinitialization.opendatahub.io default-dsci -o json | jq -r '.spec.trustedCABundle.customCABundle' > /tmp/my-custom-ca-bundles.crt将集群的
kube-root-ca.crtConfigMap 添加到 OpenShift AI 可信 CA 配置中:oc get configmap kube-root-ca.crt -o jsonpath="{['data']['ca\.crt']}" >> /tmp/my-custom-ca-bundles.crt更新 OpenShift AI 可信 CA 配置,以信任
kube-root-ca.crt中证书颁发机构发布的证书:oc patch dscinitialization default-dsci --type='json' -p='[{"op":"replace","path":"/spec/trustedCABundle/customCABundle","value":"'"$(awk '{printf "%s\\n", $0}' /tmp/my-custom-ca-bundles.crt)"'"}]'
验证
- 您可以成功部署配置为使用 OpenShift 集群中部署的对象存储解决方案或数据库的组件。例如,配置为使用集群中部署的数据库的管道服务器可以成功启动。
您可以按照 OpenShift AI fraud 检测 教程中的步骤来验证您的新证书配置。运行脚本来安装本地对象存储存储桶并创建连接,然后启用数据科学管道。
有关运行脚本以安装本地对象存储存储桶的更多信息,请参阅 运行脚本来安装本地对象存储存储桶并创建连接。
有关启用数据科学管道的更多信息,请参阅启用数据科学管道。
9.7. 在 OpenShift AI 组件中使用自签名证书 复制链接链接已复制到粘贴板!
有些 OpenShift AI 组件为自签名证书有额外的选项或所需的配置。
9.7.1. 使用带有数据科学项目管道的证书 复制链接链接已复制到粘贴板!
如果要使用自签名证书,请将它们添加到中央证书颁发机构(CA)捆绑包中,如使用 证书 (用于断开连接的环境)中所述,请参阅使用证书。
在数据科学项目管道中使用这些证书不需要额外的配置。
9.7.1.1. 仅为数据科学项目提供 CA 捆绑包 复制链接链接已复制到粘贴板!
执行以下步骤仅为数据科学管道提供证书颁发机构(CA)捆绑包。
流程
- 登录 OpenShift。
在 Workloads → ConfigMaps 中,在与目标数据科学项目管道相同的数据科学项目或命名空间中创建一个所需捆绑包的 ConfigMap:
kind: ConfigMap apiVersion: v1 metadata: name: custom-ca-bundle data: ca-bundle.crt: | # contents of ca-bundle.crt将以下代码片段添加到底层 Data Science Pipelines Application (DSPA) 的
.spec.apiserver.caBundle字段中:apiVersion: datasciencepipelinesapplications.opendatahub.io/v1 kind: DataSciencePipelinesApplication metadata: name: data-science-dspa spec: ... apiServer: ... cABundle: configMapName: custom-ca-bundle configMapKey: ca-bundle.crt
Pipeline 服务器 pod 使用更新的捆绑包重新部署,并在新创建的管道 pod 中使用它。
验证
执行以下步骤确认您的 CA 捆绑包已被成功挂载。
- 登录 OpenShift 控制台。
- 进入与 data Science 项目对应的 OpenShift 项目。
- 点 Pods 选项卡。
-
点带有
ds-pipeline-dspa-<hash> 前缀的管道服务器 pod。 - 点 Terminal。
-
输入
cat /dsp-custom-certs/dsp-ca.crt。 - 验证您的 CA 捆绑包是否存在于此文件中。
您还可以使用 CLI 确认您的 CA 捆绑包已被成功挂载:
在终端窗口中,登录部署了 OpenShift AI 的 OpenShift 集群。
oc login设置
dspa值:dspa=dspa设置
dsProject值,将$YOUR_DS_PROJECT替换为您的数据科学项目的名称:dsProject=$YOUR_DS_PROJECT设置
pod值:pod=$(oc get pod -n ${dsProject} -l app=ds-pipeline-${dspa} --no-headers | awk '{print $1}')显示
/dsp-custom-certs/dsp-ca.crt文件的内容:oc -n ${dsProject} exec $pod -- cat /dsp-custom-certs/dsp-ca.crt- 验证您的 CA 捆绑包是否存在于此文件中。
9.7.2. 使用带有工作台的证书 复制链接链接已复制到粘贴板!
自签名证书存储在 /etc/pki/tls/custom-certs/ca-bundle.crt 中。工作台使用环境变量预设,该变量将软件包指向此路径,并涵盖许多流行的 HTTP 客户端软件包。对于默认未包含的软件包,您可以提供此证书路径。例如,对于 kfp 软件包连接到数据科学管道服务器:
from kfp.client import Client
with open(sa_token_file_path, 'r') as token_file:
bearer_token = token_file.read()
client = Client(
host='https://<GO_TO_ROUTER_OF_DS_PROJECT>/',
existing_token=bearer_token,
ssl_ca_cert='/etc/pki/tls/custom-certs/ca-bundle.crt'
)
print(client.list_experiments())
第 10 章 查看日志和审计记录 复制链接链接已复制到粘贴板!
作为集群管理员,您可以使用 OpenShift AI Operator 日志记录器监控并排除问题。您还可以使用 OpenShift 审计记录来查看对 OpenShift AI Operator 配置所做的更改历史记录。
10.1. 配置 OpenShift AI Operator 日志记录器 复制链接链接已复制到粘贴板!
您可以通过在运行时为 DSC Initialization/DSCI 自定义资源设置 .spec.devFlags.logmode 标志来更改 OpenShift AI Operator 组件的日志级别。如果没有设置 logmode 值,则日志记录器默认使用 INFO 日志级别。
使用 .spec.devFlags.logmode 设置的日志级别适用于所有组件,而不仅仅是处于 Managed 状态的组件。
下表显示了可用的日志级别:
| 日志级别 | 堆栈追踪级别 | 详细程度 | 输出 | 时间戳类型 |
|---|---|---|---|---|
|
| WARN | INFO | 控制台(Console) | epoch timestamp |
|
| ERROR | INFO | JSON | 人类可读的时间戳 |
|
| ERROR | INFO | JSON | 人类可读的时间戳 |
以纯文本控制台格式设置为 devel 或 development 生成的日志。设置为 prod、production 或没有 JSON 格式的级别集的日志。
先决条件
-
您可以访问 OpenShift 集群中的
DSCInitialization资源。 -
已安装 OpenShift 命令行界面(
oc),如 安装 OpenShift CLI 中所述。
流程
- 以集群管理员身份登录 OpenShift。
- 点 Operators → Installed Operators,然后点 Red Hat OpenShift AI Operator。
- 点 DSC 初始化选项卡。
- 点 default-dsci 对象。
- 点 YAML 标签。
在
spec部分中,使用您要设置的日志级别更新.spec.devFlags.logmode标志。apiVersion: dscinitialization.opendatahub.io/v1 kind: DSCInitialization metadata: name: default-dsci spec: devFlags: logmode: development- 点击 Save。
您还可以使用以下命令,将 logmode 值设置为您想要的日志级别,从 OpenShift CLI 配置日志级别。
oc patch dsci default-dsci -p '{"spec":{"devFlags":{"logmode":"development"}}}' --type=merge
验证
-
如果将组件日志级别设置为
devel或development,日志会更频繁地生成,并在WARN级别及更高级别包含日志。 -
如果将组件日志级别设置为
prod或production,或者没有设置日志级别,日志会更频繁地生成,并在ERROR级别或更高级别包含日志。
10.1.1. 查看 OpenShift AI Operator 日志 复制链接链接已复制到粘贴板!
- 登录到 OpenShift CLI。
运行以下命令:
oc get pods -l name=rhods-operator -o name -n redhat-ods-operator | xargs -I {} oc logs -f {} -n redhat-ods-operatorOperator pod 日志将打开。
您还可以在 OpenShift Console 中查看 Operator pod 日志,在 Workloads > Deployments > Pods > ; redhat-ods-operator > Logs 下。
10.2. 查看审计记录 复制链接链接已复制到粘贴板!
集群管理员可以使用 OpenShift 审计来查看对 DataScienceCluster (DSC)和 DSCInitialization (DSCI)自定义资源的修改,来查看对 OpenShift AI Operator 配置所做的更改。标准 OpenShift 集群配置中默认启用审计日志记录。如需更多信息,请参阅 OpenShift 文档中的 查看审计日志。
在带有托管的 control plane (ROSA HCP)的 Red Hat OpenShift Service on Amazon Web Services 中,审计日志记录默认是禁用的,因为 Elasticsearch 日志存储不会为审计日志提供安全存储。要将审计日志发送到 Amazon CloudWatch ,请参阅将日志转发到 Amazon CloudWatch。
以下示例演示了如何使用 OpenShift 审计日志查看 DSC 和 DSCI 自定义资源所做的更改历史记录。
先决条件
- 具有集群管理员特权。
-
已安装 OpenShift 命令行界面(
oc),如 安装 OpenShift CLI 中所述。
流程
在一个终端窗口中,如果您还没有以集群管理员登录到 OpenShift 集群,请登录 OpenShift CLI,如下例所示:
$ oc login <openshift_cluster_url> -u <admin_username> -p <password>-
要访问更改的自定义资源的完整内容,请将 OpenShift 审计日志策略设置为
WriteRequestBodies或更全面的配置集。如需更多信息,请参阅关于审计日志策略配置集。 获取可用于相关 control plane 节点的审计日志文件。例如:
oc adm node-logs --role=master --path=kube-apiserver/ \ | awk '{ print $1 }' | sort -u \ | while read node ; do oc adm node-logs $node --path=kube-apiserver/audit.log < /dev/null done \ | grep opendatahub > /tmp/kube-apiserver-audit-opendatahub.log在文件中搜索 DSC 和 DSCI 自定义资源。例如:
jq 'select((.objectRef.apiGroup == "dscinitialization.opendatahub.io" or .objectRef.apiGroup == "datasciencecluster.opendatahub.io") and .user.username != "system:serviceaccount:redhat-ods-operator:redhat-ods-operator-controller-manager" and .verb != "get" and .verb != "watch" and .verb != "list")' < /tmp/kube-apiserver-audit-opendatahub.log
验证
- 命令返回相关的日志条目。
要配置日志保留时间,请查看以下资源:
- OpenShift 4.14 到 4.16 : 在 Elasticsearch 中配置日志保留时间 或使用 Loki 启用基于流的保留时间
- OpenShift 4.17: 使用 Loki 启用基于流的保留
第 11 章 常见安装问题的故障排除 复制链接链接已复制到粘贴板!
如果您在安装 Red Hat OpenShift AI Operator 时遇到问题,请阅读本节以了解导致这个问题的原因以及如何解决这个问题。
如果此处或发行注记中没有包括该问题,请联系红帽支持团队。在提交问题单时,包含集群的调试信息会很有帮助。您可以使用 must-gather 工具来收集此信息,如 Must-Gather for Red Hat OpenShift AI 和 收集集群数据 中所述。
您还可以调整 OpenShift AI Operator 组件的日志级别,以增加或减少日志详细程度以满足您的用例。如需更多信息,请参阅配置 OpenShift AI Operator 日志记录器。
11.1. Red Hat OpenShift AI Operator 无法从镜像 registry 中检索 复制链接链接已复制到粘贴板!
问题
当尝试从镜像 registry 检索 Red Hat OpenShift AI Operator 时,会出现一个 Failure to pull from quay 错误信息。在以下情况下,Red Hat OpenShift AI Operator 可能无法检索:
- 镜像 registry 不可用。
- 您的网络连接存在问题。
- 集群无法正常工作,因此无法检索镜像 registry。
诊断
检查 OpenShift 中的 Events 部分中的日志,以了解有关 Failure to pull from quay 错误消息的更多信息。
解决方案
- 联系红帽支持。
11.2. OpenShift AI 在不支持的基础架构上不安装 复制链接链接已复制到粘贴板!
问题
您在 Red Hat OpenShift AI Operator 不支持的环境中部署。
诊断
- 在 OpenShift Web 控制台中,切换到 Administrator 视角。
- 点击 Workloads → Pods。
- 将 Project 设置为 All Projects 或 redhat-ods-operator。
点
rhods-operator-<random string>pod。Pod 详情页面会显示。
- 点 Logs。
- 从下拉列表中选择 rhods-operator。
-
检查日志的
ERROR: Deploying on $infrastructure, which is not supported。Failing Installation错误信息。
解决方案
- 在继续新安装前,请确保您有完全受支持的环境来安装 OpenShift AI。如需更多信息,请参阅 Red Hat OpenShift AI: 支持的配置。
11.3. OpenShift AI 自定义资源(CR)的创建失败 复制链接链接已复制到粘贴板!
问题
在安装过程中,OpenShift AI 自定义资源(CR)不会被创建。这个问题在未知情况下发生。
诊断
- 在 OpenShift Web 控制台中,切换到 Administrator 视角。
- 点击 Workloads → Pods。
- 将 Project 设置为 All Projects 或 redhat-ods-operator。
点
rhods-operator-<random string>pod。Pod 详情页面会显示。
- 点 Logs。
- 从下拉列表中选择 rhods-operator。
-
检查
ERROR: Attempt 的日志,以创建 ODH CR failed.错误消息。
解决方案
- 联系红帽支持。
11.4. OpenShift AI Notebooks 自定义资源(CR)的创建失败 复制链接链接已复制到粘贴板!
问题
在安装过程中,OpenShift AI Notebooks 自定义资源(CR)不会被创建。这个问题在未知情况下发生。
诊断
- 在 OpenShift Web 控制台中,切换到 Administrator 视角。
- 点击 Workloads → Pods。
- 将 Project 设置为 All Projects 或 redhat-ods-operator。
点
rhods-operator-<random string>pod。Pod 详情页面会显示。
- 点 Logs。
- 从下拉列表中选择 rhods-operator。
-
检查
ERROR: Attempt 以创建 RHODS Notebooks CR failed.错误信息的日志。
解决方案
- 联系红帽支持。
11.5. OpenShift AI 仪表板无法访问 复制链接链接已复制到粘贴板!
问题
安装 OpenShift AI 后,redhat-ods-applications、redhat-ods-monitoring 和 redhat-ods-operator 项目命名空间是 Active,但由于 pod 中的错误,您无法访问仪表板。
诊断
- 在 OpenShift Web 控制台中,切换到 Administrator 视角。
- 点击 Workloads → Pods。
- 将项目设置为 All Projects。
单击 Filter,然后选中 Running 和 Completed 以外的每个状态的复选框。
页面中显示出错的 pod。
解决方案
- 要查看 Pod 的更多信息和故障排除步骤,请在 Pods 页面中点击 Pod 的 Status 列中的链接。
- 如果 Status 列没有显示链接,请单击 Pod 名称以打开 Pod 详情页面,然后单击 Logs 选项卡。
11.6. 无法创建基于 dedicated-admins 基于角色的访问控制(RBAC)策略 复制链接链接已复制到粘贴板!
问题
无法为目标项目中的 dedicated-admins 组提供基于角色的访问控制(RBAC)策略。这个问题在未知情况下发生。
诊断
- 在 OpenShift Web 控制台中,切换到 Administrator 视角。
- 点击 Workloads → Pods。
- 将 Project 设置为 All Projects 或 redhat-ods-operator。
点
rhods-operator-<random string>pod。Pod 详情页面会显示。
- 点 Logs。
- 从下拉列表中选择 rhods-operator。
-
检查
ERROR: Attempt 的日志,在 $target_project failed. 错误消息中为 dedicated admins 组创建 RBAC 策略。
解决方案
- 联系红帽支持。
11.7. PagerDuty secret 不会被创建 复制链接链接已复制到粘贴板!
问题
Managed Tenants SRE 自动化进程存在问题,导致 PagerDuty 的 secret 无法被创建。
诊断
- 在 OpenShift Web 控制台中,切换到 Administrator 视角。
- 点击 Workloads → Pods。
- 将 Project 设置为 All Projects 或 redhat-ods-operator。
点
rhods-operator-<random string>pod。Pod 详情页面会显示。
- 点 Logs。
- 从下拉列表中选择 rhods-operator。
-
检查
ERROR: Pagerduty secret 的日志不存在错误消息。
解决方案
- 联系红帽支持。
11.8. SMTP secret 不存在 复制链接链接已复制到粘贴板!
问题
Managed Tenants SRE 自动化进程存在问题,会导致 SMTP secret 无法创建。
诊断
- 在 OpenShift Web 控制台中,切换到 Administrator 视角。
- 点击 Workloads → Pods。
- 将 Project 设置为 All Projects 或 redhat-ods-operator。
点
rhods-operator-<random string>pod。Pod 详情页面会显示。
- 点 Logs。
- 从下拉列表中选择 rhods-operator。
-
检查日志中的
ERROR: SMTP secret does not exist错误信息。
解决方案
- 联系红帽支持。
11.9. ODH 参数 secret 不会被创建 复制链接链接已复制到粘贴板!
问题
OpenShift AI Operator 流的问题可能会导致无法创建 ODH 参数。
诊断
- 在 OpenShift Web 控制台中,切换到 Administrator 视角。
- 点击 Workloads → Pods。
- 将 Project 设置为 All Projects 或 redhat-ods-operator。
点
rhods-operator-<random string>pod。Pod 详情页面会显示。
- 点 Logs。
- 从下拉列表中选择 rhods-operator。
-
检查
ERROR: Addon managed odh parameter secret does not exist.错误信息。
解决方案
- 联系红帽支持。
问题
在安装了未由 OpenShift AI 安装的 Argo 工作流安装 OpenShift AI 2.9 或更高版本后,虽然 Datasciencepipelines 组件在 DataScienceCluster 对象中启用了 datasciencepipelines 组件,则不会启用数据科学管道。
诊断
安装 OpenShift AI 2.9 或更高版本后,Data Science Pipelines 选项卡在 OpenShift AI 仪表板导航菜单中不可见。
解决方案
- 删除集群中的 Argo 工作流的独立安装。在从集群中删除任何不是由 OpenShift AI 创建的 Argo Workflows 资源后,会自动启用数据科学管道。
第 12 章 卸载 Red Hat OpenShift AI Self-Managed 复制链接链接已复制到粘贴板!
本节介绍如何使用 OpenShift 命令行界面(CLI)卸载 Red Hat OpenShift AI Operator 以及由 Operator 安装和管理的任何 OpenShift AI 组件。
使用 CLI 是卸载 Operator 的建议方法。根据您的 OpenShift 版本,使用 Web 控制台执行卸载可能无法提示您卸载所有相关组件。这可能会导致您不知道集群的最终状态。
12.1. 了解卸载过程 复制链接链接已复制到粘贴板!
安装 Red Hat OpenShift AI 在 OpenShift 集群上为 OpenShift AI 的不同组件创建了多个自定义资源实例。安装后,用户可能会在使用 OpenShift AI 时创建多个其他资源。卸载 OpenShift AI 会删除 Operator 创建的资源,但保留用户创建的资源,以防止意外删除您可能需要的信息。
要删除的内容
卸载 OpenShift AI 从 OpenShift 集群中删除以下资源:
-
DataScienceCluster自定义资源实例 -
DSCInitialization自定义资源实例 -
FeatureTracker自定义资源实例在安装过程中或安装后创建 -
在 Operator 期间或安装后创建的
ServiceMesh自定义资源实例 -
Operator在安装过程中或安装后创建的 KnativeServing 自定义资源实例 -
redhat-ods-applications,redhat-ods-monitoring, 和rhods-notebooks命名空间由 Operator 创建 -
rhods-notebooks命名空间中的工作负载 -
Subscription,ClusterServiceVersion, 和InstallPlan对象 -
KfDef对象(仅限版本 1 Operator)
可能保留什么
卸载 OpenShift AI 在 OpenShift 集群中保留以下资源:
- 用户创建的数据科学项目
- 用户创建的自定义资源实例
- 由用户或 Operator 创建的自定义资源定义 (CRD)
虽然这些资源可能仍然保留在 OpenShift 集群中,但它们无法正常工作。卸载后,红帽建议您查看 OpenShift 集群中的数据科学项目和自定义资源,并删除不再用于防止潜在问题(如无法取消部署且无法取消部署的管道)的任何内容。
12.2. 使用 CLI 卸载 OpenShift AI 自我管理 复制链接链接已复制到粘贴板!
以下流程演示了如何使用 OpenShift 命令行界面(CLI) 卸载 Red Hat OpenShift AI Operator 以及由 Operator 安装和管理的任何 OpenShift AI 组件。
先决条件
- 具有集群管理员特权。
- 您已下载并安装 OpenShift 命令行界面 (CLI)。请参阅安装 OpenShift CLI。
- 您已备份了持久性卷声明 (PVC) 使用的持久性卷或卷。
流程
- 打开一个新的终端窗口。
在 OpenShift 命令行界面(CLI)中,以集群管理员身份登录到 OpenShift 集群,如下例所示:
$ oc login <openshift_cluster_url> -u system:admin创建
ConfigMap对象以删除 Red Hat OpenShift AI Operator。$ oc create configmap delete-self-managed-odh -n redhat-ods-operator要删除
rhods-operator,请将addon-managed-odh-delete标签设置为true。$ oc label configmap/delete-self-managed-odh api.openshift.com/addon-managed-odh-delete=true -n redhat-ods-operator删除与 Operator 关联的所有对象时,删除
redhat-ods-operator项目。为
redhat-ods-applications项目设置环境变量。$ PROJECT_NAME=redhat-ods-applications等待
redhat-ods-applications项目已被删除。$ while oc get project $PROJECT_NAME &> /dev/null; do echo "The $PROJECT_NAME project still exists" sleep 1 done echo "The $PROJECT_NAME project no longer exists"删除
redhat-ods-applications项目后,您会看到以下输出:The redhat-ods-applications project no longer exists删除
redhat-ods-applications项目后,删除redhat-ods-operator项目。$ oc delete namespace redhat-ods-operator
验证
确认
rhods-operator订阅不再存在。$ oc get subscriptions --all-namespaces | grep rhods-operator确认以下项目不再存在。
-
redhat-ods-applications -
redhat-ods-monitoring -
redhat-ods-operator rhods-notebooks$ oc get namespaces | grep -e redhat-ods* -e rhods*注意只有在安装了 OpenShift AI 的工作台组件时,才会创建
rhods-notebooks项目。请参阅 安装和管理 Red Hat OpenShift AI 组件。
-