第 11 章 DPU Operator
11.1. DPU Operator 复制链接链接已复制到粘贴板!
作为集群管理员,您可以将 DPU Operator 添加到集群中,以管理 DPU 设备和网络附加。
DPU Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
11.1.1. 使用 DPU Operator 编排 DPU 复制链接链接已复制到粘贴板!
您可以使用 Data Processing Unit (DPU) Operator 来管理从主机 CPU 中卸载网络、存储和安全工作负载的 DPU,以提高集群性能和效率。
DPU 是一个可编程的处理器类型,它代表了三个基础中的计算(computing),其它两个为 CPU 和 GPU。CPU 用于处理常规计算任务,GPU 可以加速特定的工作负载,但 DPU 的主要作业是卸载和加速以数据为中心的工作负载,如网络、存储和安全功能。
DPU 通常用于数据中心和云环境,它会从 CPU 卸载这些任务来提高性能、缩短延迟并增强安全性。DPU 也可用于通过使特殊工作负载部署更接近数据源,从而创建更高效且更灵活的基础架构。
DPU Operator 负责管理 DPU 设备和网络附加。DPU Operator 将 DPU 守护进程部署到通过 API 控制 DPU 守护进程在 DPU 上运行的 OpenShift Container Platform 计算节点上。DPU Operator 负责 ovn-kube 组件的生命周期管理,以及 DPU 上必要的主机网络初始化。
下表描述了当前支持的 DPU 设备。
| Vendor | 设备 | 固件 | 描述 |
|---|---|---|---|
| Intel | IPU E2100 | 版本 2.0.0.11126 或更高版本 | DPU 旨在从数据中心中的主机 CPU 中卸载网络、存储和安全任务,提高了效率和性能。有关部署完整的端到端解决方案的说明,请参阅红帽知识库解决方案使用 Intel E2100 IPU、DPU Operator 和 F5 NGINX 在 OpenShift 上加速机密 AI。 |
| Senao | SX904 | 35.23.47.0008 或更高版本 | SmartNIC 旨在从数据中心和边缘计算环境中的主机 CPU 中卸载计算和网络服务,从而提高工作负载的效率并有效地隔离工作负载。 |
| Marvell | Marvell Octeon 10 CN106 | SDK12.25.01 或更高版本 | 旨在卸载需要从数据中心和边缘计算环境中主机 CPU 的高速度数据处理的工作负载,提高了性能和能源效率 |
不支持 NVIDIA BlueField-3。
11.1.2. 安装 DPU Operator 复制链接链接已复制到粘贴板!
您可以在主机和 DPU 集群上安装数据处理单元(DPU) Operator,以使用 CLI 或 Web 控制台管理设备生命周期和网络附加。
集群管理员可以使用 OpenShift Container Platform CLI 或 Web 控制台在主机集群中安装 DPU Operator,以及所有 DPU 集群。DPU Operator 管理所有支持的 DPU 的生命周期、DPU 设备和网络附加"。
您需要在主机集群以及每个 DPU 集群中安装 DPU Operator。
11.1.2.1. 使用 CLI 安装 DPU Operator 复制链接链接已复制到粘贴板!
您可以使用 CLI 安装 DPU Operator。在主机集群中设置 DPU 设备管理时,您可以使用 DPU Operator 来简化安装过程。
作为集群管理员,您可以使用 CLI 安装 DPU Operator。
CLI 必须在 DPU 集群上安装 DPU Operator。
先决条件
-
安装 OpenShift CLI(
oc)。 -
具有
cluster-admin特权的帐户。
流程
输入以下命令来创建
openshift-dpu-operator命名空间:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令来创建
OperatorGroup自定义资源 (CR):Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令为 DPU Operator 创建
SubscriptionCR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证是否已安装 Operator,请输入以下命令,然后检查 Operator 的输出显示
Succeeded:oc get csv -n openshift-dpu-operator \ -o custom-columns=Name:.metadata.name,Phase:.status.phase
$ oc get csv -n openshift-dpu-operator \ -o custom-columns=Name:.metadata.name,Phase:.status.phaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 进入
openshift-dpu-operator项目:oc project openshift-dpu-operator
$ oc project openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证 DPU Operator 是否正在运行:
oc get pods -n openshift-dpu-operator
$ oc get pods -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE dpu-operator-controller-manager-6b7bbb5db8-7lvkj 2/2 Running 0 2m9s
NAME READY STATUS RESTARTS AGE dpu-operator-controller-manager-6b7bbb5db8-7lvkj 2/2 Running 0 2m9sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.1.2.2. 使用 Web 控制台安装 DPU Operator 复制链接链接已复制到粘贴板!
您可以使用 Web 控制台安装 DPU Operator。在主机集群中设置 DPU 设备管理时,您可以使用 DPU Operator 来简化安装过程。
作为集群管理员,您可以使用 Web 控制台安装 DPU Operator。
先决条件
-
安装 OpenShift CLI(
oc)。 -
具有
cluster-admin特权的帐户。
流程
-
在 OpenShift Container Platform Web 控制台中,点 Ecosystem
Software Catalog。 - 从可用的 Operator 列表中选择 DPU Operator,然后点 Install。
在 Install Operator 页中,在 Installed Namespace 下,默认预先选择 Operator recommended Namespace 选项。不需要操作。
- 点 Install。
验证
-
进入到 Ecosystem
Installed Operators 页。 确保 openshift-dpu-operator 项目列出了 DPU Operator,Status 为 InstallSucceeded。
注意在安装过程中,Operator 可能会显示 Failed 状态。如果安装过程结束后有 InstallSucceeded 信息,您可以忽略这个 Failed 信息。
故障排除
- 检查 Operator Subscriptions 和 Install Plans 选项卡中的 Status 项中是否有任何错误。
-
进入到 Workloads
Pods 页,在 openshift-dpu-operator项目中检查 pod 的日志。 检查 YAML 文件的命名空间。如果缺少注解,您可以使用以下命令将注解
workload.openshift.io/allowed=management添加到 Operator 命名空间中:oc annotate ns/openshift-dpu-operator workload.openshift.io/allowed=management
$ oc annotate ns/openshift-dpu-operator workload.openshift.io/allowed=managementCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意对于单节点 OpenShift 集群,命名空间需要注解
workload.openshift.io/allowed=management。
11.1.3. 配置 DPU Operator 复制链接链接已复制到粘贴板!
您可在安装后配置 DPU Operator,以便在双集群和单集群部署模式中启用管理 DPU 设备和网络附加。
您可以配置 DPU Operator 来管理集群中的 DPU 设备和网络附加。
要配置 DPU Operator,请按照以下步骤操作:
流程
根据您的部署模式创建
DpuOperatorConfig自定义资源 (CR):-
双集群部署:您必须在主机 OpenShift Container Platform 集群上和每个红帽构建 MicroShift (MicroShift) DPU 集群上创建
DpuOperatorConfigCR。 单集群部署:此部署使用标准的 OpenShift Container Platform 集群。您只需要在此集群中创建
DpuOperatorConfigCR 一次。所有集群的 CR 的内容都相同。
-
双集群部署:您必须在主机 OpenShift Container Platform 集群上和每个红帽构建 MicroShift (MicroShift) DPU 集群上创建
使用以下 YAML 创建名为
dpu-operator-config.yaml的文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
metadata.name:指定自定义资源的名称,它必须是dpu-operator-config。 -
spec.logLevel:在 operator 容器日志中设置所需的日志详细程度。值0是默认设置。
-
运行以下命令来创建资源:
oc apply -f dpu-operator-config.yaml
$ oc apply -f dpu-operator-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 标记具有附加的 DPU 或作为 DPU 运行的所有节点。您可以运行以下命令来应用此标签:
oc label node <node_name> dpu=true
$ oc label node <node_name> dpu=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
node_name引用节点的名称,如
worker-1。注意部署与 DPU 兼容的集群的方法有两种:
-
双集群部署:这由主机上运行的 OpenShift Container Platform 和 DPU 上运行的红帽 MicroShift (MicroShift) 组成。在这个模式中,红帽构建的 MicroShift (MicroShift) 实例还需要部署 DPU Operator,且您必须在节点上设置标签
dpu=true。 -
单集群部署:这仅包含在主机上运行的 OpenShift Container Platform,其中 DPUs 集成到主集群中。DPU 只需要为安装了 DPU 的主机节点以及 DPU 节点本身都需要标签
dpu=true。DPU Operator 会自动检测节点的角色,无论是作为 DPU 运行还是带有附加的 DPU 的主机。
-
双集群部署:这由主机上运行的 OpenShift Container Platform 和 DPU 上运行的红帽 MicroShift (MicroShift) 组成。在这个模式中,红帽构建的 MicroShift (MicroShift) 实例还需要部署 DPU Operator,且您必须在节点上设置标签
11.1.4. 使用 DPU 在主机上运行工作负载 复制链接链接已复制到粘贴板!
您可以使用 DPU 在主机上部署工作负载,以卸载专用的基础架构任务,并在释放主机 CPU 资源的同时提高性能。
在 DPU 上运行工作负载,可以将特定的基础架构任务卸载,如网络、安全性和存储到专用处理单元。这提高了性能,在基础架构和应用程序工作负载之间强制实施更强大的安全边界,并释放主机 CPU 资源。
按照以下步骤,使用 DPU 在主机上部署工作负载。这是在主机的 x86 CPU 上运行应用程序的标准部署模型,但会使用 DPU 进行网络加速和卸载。
先决条件
-
已安装 OpenShift CLI (
oc)。 -
具有
cluster-admin权限的帐户。 - 已安装 DPU Operator。
流程
使用以下 YAML 创建用于在主机侧 worker 节点上运行的示例工作负载。将文件保存为
workload-host.yaml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.nodeSelector:节点选择器使用 DPU 资源将 pod 调度到节点上。您可以将任何标准 Kubernetes 选择器用于此目的,如kubernetes.io/hostname,将特定的节点作为目标,如示例 YAML 所示。注意对于灵活的调度,DPU Operator 会创建标签 dpu.config.openshift.io/dpuside: "dpu-host"。该标签可让默认调度程序将工作负载放在具有 DPU 的任何主机上。工作负载会自动加入 DPU 二级网络。当节点上的标签为
dpu.config.openshift.io/dpuside: "dpu"时,这表示该节点是 DPU 本身。DPU Operator 会创建和管理dpu.config.openshift.io/dpuside标签。运行以下命令来创建工作负载:
oc apply -f workload-host.yaml
$ oc apply -f workload-host.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.1.5. 在 DPU 上运行工作负载 复制链接链接已复制到粘贴板!
您可以直接在 DPU 上部署网络工作负载,以提高性能、增强安全隔离并减少主机 CPU 用量。
DPU 卸载网络工作负载,如安全功能或虚拟设备,以提高性能、增强安全隔离和释放主机 CPU 资源。
按照以下步骤,将简单的 pod 直接部署到 DPU 中。
先决条件
-
安装 OpenShift CLI(
oc)。 -
具有
cluster-admin特权的帐户。 - 安装 DPU Operator。
流程
将以下 YAML 文件示例保存为
dpu-pod.yaml。这是 Kubernetes 默认调度程序直接调度到 DPU 节点的简单 pod 示例。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
metadata.name.annotations.k8s.v1.cni.cncf.io/networks: 值dpunfcni-conf指定NetworkAttachmentDefinition资源值。DPU Operator 在安装过程中创建此资源来配置 DPU 网络。 -
spec.nodeSelector:nodeSelector是调度此工作负载的主要机制。DPU Operator 创建和维护标签:dpu.config.openshift.io/dpuside: "dpu"。此标签可确保 pod 直接调度到 DPU 的处理单元。 -
spec.containers.name:容器的名称。 -
spec.containers.image:要拉取和运行的容器镜像。
-
运行以下命令来创建 pod:
oc apply -f dpu-pod.yaml
$ oc apply -f dpu-pod.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证 pod 状态:
oc get pods -n openshift-dpu-operator
$ oc get pods -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保容器集的状态为
Running。
11.1.6. 监控 DPU 的状态 复制链接链接已复制到粘贴板!
您可以监控 DPU 基础架构状态,以检查集群中的 DPU 设备的当前状态和健康状况。
您可以监控 DPU 状态来查看 DPU 基础架构的当前状态。
oc get dpu 命令显示 DPU 基础架构的当前状态。按照以下步骤监控各种卡的状态。
先决条件
-
已安装 OpenShift CLI (
oc)。 -
具有
cluster-admin权限的帐户。 - 已安装 DPU Operator。
流程
运行以下命令检查节点的整体健康状况:
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例输出提供了集群中所有节点的列表及其状态。在继续操作前,请确保所有节点都处于
Ready状态。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此输出显示三个 master 节点,以及由 worker-host 前缀标识的三个 worker 节点,如
worker-host-ipu-219。每个 worker 节点都包含由 ocpcluster-dpu 前缀标识的 DPU,例如ocpcluster-dpu-ipu-219。运行以下命令报告 DPU 的状态:
oc get dpu
$ oc get dpuCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例输出提供了检测到的 DPU 列表。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
DPU PRODUCT:显示 DPU 厂商或类型,例如 Intel 或 Marvell。 -
DPU SIDE: 代表在主机侧运行(false) 或在 DPU 侧 (true) 运行。每个物理 DPU 都表示两次。 -
MODE NAME:DPU 所在的节点的名称。这是false条目的主机 worker 节点,以及true条目的 DPU 节点。 STATUS: 指示 DPU 在正常运行 (True) 或有问题 (False)。注意运行
oc get dpu -o yaml以获取有关状态的更多详细信息。
-
11.1.7. 卸载 DPU Operator 复制链接链接已复制到粘贴板!
当您不再需要 DPU 设备管理时,您可以从集群中卸载 DPU Operator,确保首先删除所有工作负载。
要卸载 DPU Operator,您必须首先删除任何正在运行的 DPU 工作负载。按照以下步骤卸载 DPU Operator。
先决条件
-
可以使用具有
cluster-admin权限的账户访问 OpenShift Container Platform 集群。 - 已安装 DPU Operator。
流程
运行以下命令删除创建的
DpuOperatorConfigCRoc delete DpuOperatorConfig dpu-operator-config
$ oc delete DpuOperatorConfig dpu-operator-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,删除用于安装 DPU Operator 的订阅:
oc delete Subscription openshift-dpu-operator-subscription -n openshift-dpu-operator
$ oc delete Subscription openshift-dpu-operator-subscription -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令删除创建的
OperatorGroup资源:oc delete OperatorGroup dpu-operators -n openshift-dpu-operator
$ oc delete OperatorGroup dpu-operators -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 按如下方式卸载 DPU Operator:
运行以下命令检查已安装的 Operator:
oc get csv -n openshift-dpu-operator
$ oc get csv -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME DISPLAY VERSION REPLACES PHASE dpu-operator.v4.20.0-202503130333 DPU Operator 4.20.0-202503130333 Failed
NAME DISPLAY VERSION REPLACES PHASE dpu-operator.v4.20.0-202503130333 DPU Operator 4.20.0-202503130333 FailedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除 DPU Operator:
oc delete csv dpu-operator.v4.20.0-202503130333 -n openshift-dpu-operator
$ oc delete csv dpu-operator.v4.20.0-202503130333 -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令,删除为 DPU Operator 创建的命名空间:
oc delete namespace openshift-dpu-operator
$ oc delete namespace openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令验证 DPU Operator 是否已卸载。一个成功命令的输出示例是
No resources found in openshift-dpu-operator namespace。oc get csv -n openshift-dpu-operator
$ oc get csv -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow