2.11. DPU Operator


2.11.1. 关于 DPU 和 DPU Operator

作为集群管理员,您可以将 DPU Operator 添加到集群中,以管理 DPU 设备和网络附加。

重要

DPU Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

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

2.11.1.1. 使用 DPU Operator 编排 DPU

数据处理单元(DPU)是可编程处理器类型,被视为三种基本支配计算之一,以及 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 设备。

Expand
表 2.18. 支持的设备
Vendor设备固件描述

Intel

IPU E2100

版本 2.0.0.11126 或更高版本

DPU 旨在从数据中心中的主机 CPU 中卸载网络、存储和安全任务,提高了效率和性能。有关部署完整的端到端解决方案的说明,请参阅红帽知识库解决方案 使用 Intel E2100 IPU、DPU Operator 和 F5 NGINX 在 OpenShift 上加速机密 AI

2.11.2. 安装 DPU Operator

您可以在集群中安装数据处理单元 (DPU) Operator 来管理 DPU 设备和网络附加。在主机集群和所有 DPU 集群上安装 DPU Operator。DPU Operator 管理所有支持的 DPU 的生命周期。

作为集群管理员,您可以使用 OpenShift Container Platform CLI 或 Web 控制台安装 DPU Operator。

注意

您需要在主机集群以及每个 DPU 集群中安装 DPU Operator。

2.11.2.1. 使用 CLI 安装 DPU Operator

作为集群管理员,您可以使用 CLI 安装 DPU Operator。

注意

CLI 必须在 DPU 集群上安装 DPU Operator。

先决条件

  • 安装 OpenShift CLI(oc)。
  • 具有 cluster-admin 特权的帐户。

流程

  1. 输入以下命令来创建 openshift-dpu-operator 命名空间:

    $ cat << EOF| oc create -f -
    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-dpu-operator
      annotations:
        workload.openshift.io/allowed: management
    EOF
    Copy to Clipboard Toggle word wrap
  2. 输入以下命令来创建 OperatorGroup 自定义资源 (CR):

    $ cat << EOF| oc create -f -
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: dpu-operators
      namespace: openshift-dpu-operator
    spec:
      targetNamespaces:
      - openshift-dpu-operator
    EOF
    Copy to Clipboard Toggle word wrap
  3. 输入以下命令为 DPU Operator 创建 Subscription CR:

    $ cat << EOF| oc create -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: openshift-dpu-operator-subscription
      namespace: openshift-dpu-operator
    spec:
      channel: stable
      name: dpu-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
    EOF
    Copy to Clipboard Toggle word wrap

验证

  1. 输入以下命令检查是否安装了 Operator:

    $ oc get csv -n openshift-dpu-operator \
      -o custom-columns=Name:.metadata.name,Phase:.status.phase
    Copy to Clipboard Toggle word wrap

    输出示例

    Name                                                      Phase
    dpu-operator.v.4.19-202503130333             Succeeded
    Copy to Clipboard Toggle word wrap

  2. 进入 openshift-dpu-operator 项目:

    $ oc project openshift-dpu-operator
    Copy to Clipboard Toggle word wrap
  3. 输入以下命令验证 DPU Operator 是否正在运行:

    $ oc get pods -n openshift-dpu-operator
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                                               READY   STATUS    RESTARTS   AGE
    dpu-operator-controller-manager-6b7bbb5db8-7lvkj   2/2     Running   0          2m9s
    Copy to Clipboard Toggle word wrap

2.11.2.2. 使用 Web 控制台安装 DPU Operator

作为集群管理员,您可以使用 Web 控制台安装 DPU Operator。

先决条件

  • 安装 OpenShift CLI(oc)。
  • 具有 cluster-admin 特权的帐户。

流程

  1. 在 OpenShift Container Platform Web 控制台中,点击 Operators OperatorHub
  2. 从可用的 Operator 列表中选择 DPU Operator,然后点 Install
  3. Install Operator 页中,在 Installed Namespace 下,默认预先选择 Operator recommended Namespace 选项。不需要操作。

    1. Install

验证

  1. 导航到 Operators Installed Operators 页面。
  2. 确保 openshift-dpu-operator 项目中列出的 DPU OperatorStatusInstallSucceeded

    注意

    在安装过程中,Operator 可能会显示 Failed 状态。如果安装过程结束后有 InstallSucceeded 信息,您可以忽略这个 Failed 信息。

故障排除

  • 检查 Operator SubscriptionsInstall 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
    Copy to Clipboard Toggle word wrap
    注意

    对于单节点 OpenShift 集群,命名空间需要注解 workload.openshift.io/allowed=management

2.11.2.3. 后续步骤

2.11.3. 配置 DPU Operator

您可以配置 DPU Operator 来管理集群中的 DPU 设备和网络附加。

2.11.3.1. 配置 DPU Operator

要配置 DPU Operator,请按照以下步骤操作:

流程

  1. 在主机集群和每个 DPU 集群上创建一个 DpuOperatorConfig 自定义资源(CR)。每个集群中的 DPU Operator 在创建此 CR 后会被激活。
  2. 使用以下 YAML 创建名为 dpu-operator-host-config.yaml 的文件:

    apiVersion: config.openshift.io/v1
    kind: DpuOperatorConfig
    metadata:
     name: dpu-operator-config 
    1
    
    spec:
     mode: host 
    2
    Copy to Clipboard Toggle word wrap
    1
    自定义资源的名称必须是 dpu-operator-config
    2
    在主机集群中将值设置为 host。在每个 DPU 集群中(每个 DPU 运行单个 MicroShift 集群)将值设为 dpu
  3. 运行以下命令来创建资源:

    $ oc apply -f dpu-operator-host-config.yaml
    Copy to Clipboard Toggle word wrap
  4. 您必须标记附加 DPU 的所有节点,或者作为 DPU 正常工作。在主机集群中,这意味着标记所有计算节点,假设每个节点都附加了带有 dpu=true 的 DPU。在 DPU 上,每个 MicroShift 集群都由一个节点组成,将集群中的每个节点标记为 dpu=true。您可以运行以下命令来应用此标签:

    $ oc label node <node-name> dpu=true
    Copy to Clipboard Toggle word wrap

    Example

    $ oc label node worker-1 dpu=true
    Copy to Clipboard Toggle word wrap

2.11.4. 在 DPU 上运行工作负载

在 DPU 上运行工作负载,可以将特定的基础架构任务卸载,如网络、安全性和存储到专用处理单元。这提高了性能,在基础架构和应用程序工作负载之间强制实施更强大的安全边界,并释放主机 CPU 资源。

2.11.4.1. 在 DPU 上运行工作负载

按照以下步骤在 DPU 上部署工作负载。

先决条件

  • 已安装 OpenShift CLI (oc)。
  • 具有 cluster-admin 权限的帐户。
  • 已安装 DPU Operator。

流程

  1. 使用以下 YAML 在主机端创建示例工作负载,将文件保存为 workload-host.yaml

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
      namespace: default
      annotations:
        k8s.v1.cni.cncf.io/networks: default-sriov-net
    spec:
      nodeSelector:
        kubernetes.io/hostname: worker-237 
    1
    
      containers:
      - name: appcntr1
        image: registry.access.redhat.com/ubi9/ubi:latest
        command: ['/bin/sh', '-c', 'sleep infinity']
        imagePullPolicy: Always
        securityContext:
          priviledged: true
          runAsNonRoot: false
          runAsUser: 0
          seccompProfile:
            type: RuntimeDefault
        resources:
          requests:
            openshift.io/dpu: '1'
          limits:
            openshift.io/dpu: '1'
    Copy to Clipboard Toggle word wrap
    1
    部署工作负载的节点的名称。
  2. 运行以下命令来创建工作负载:

    $ oc apply -f workload-host.yaml
    Copy to Clipboard Toggle word wrap

2.11.4.2. 在 DPU 上创建服务功能链

网络服务链(也称为服务功能链(SFC))是一种使用软件定义型网络(SDN)功能创建连接的网络服务链的功能,如防火墙、网络地址转换(NAT)和入侵保护。

按照此流程,在 DPU 上的服务功能链中创建网络功能 my-network-function

先决条件

  • 安装 OpenShift CLI(oc)。
  • 具有 cluster-admin 特权的帐户。
  • 安装 DPU Operator。

流程

  1. 将以下 YAML 文件示例保存为 sfc.yaml

    apiVersion: config.openshift.io/v1
    kind: ServiceFunctionChain
    metadata:
      name: sfc
      namespace: openshift-dpu-operator
    spec:
      networkFunctions:
      - name: my-network-function 
    1
    
        image: quay.io/example-org/my-network-function:latest 
    2
    Copy to Clipboard Toggle word wrap
    1
    网络功能的名称。此名称用于识别服务功能链中的网络功能。
    2
    包含网络功能的容器镜像的 URL。该镜像必须可从 DPU 访问。
  2. 在 DPU 节点上运行以下命令来创建链:

    $ oc apply -f sfc.yaml
    Copy to Clipboard Toggle word wrap

2.11.5. 卸载 DPU Operator

要卸载 DPU Operator,您必须首先删除任何正在运行的 DPU 工作负载。按照以下步骤卸载 DPU Operator。

2.11.5.1. 卸载 DPU Operator

作为集群管理员,您可以卸载 DPU Operator。

先决条件

  • 可以使用具有 cluster-admin 权限的账户访问 OpenShift Container Platform 集群。
  • 已安装 DPU Operator。

流程

  1. 运行以下命令删除创建的 DpuOperatorConfig CR

    $ oc delete DpuOperatorConfig dpu-operator-config
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,删除用于安装 DPU Operator 的订阅:

    $ oc delete Subscription openshift-dpu-operator-subscription -n openshift-dpu-operator
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令删除创建的 OperatorGroup 资源:

    $ oc delete OperatorGroup dpu-operators -n openshift-dpu-operator
    Copy to Clipboard Toggle word wrap
  4. 按如下方式卸载 DPU Operator:

    1. 运行以下命令检查已安装的 Operator:

      $ oc get csv -n openshift-dpu-operator
      Copy to Clipboard Toggle word wrap

      输出示例

      NAME                                DISPLAY        VERSION               REPLACES   PHASE
      dpu-operator.v4.19.0-202503130333   DPU Operator   4.19.0-202503130333              Failed
      Copy to Clipboard Toggle word wrap

    2. 运行以下命令来删除 DPU Operator:

      $ oc delete csv dpu-operator.v4.19.0-202503130333 -n openshift-dpu-operator
      Copy to Clipboard Toggle word wrap
  5. 运行以下命令,删除为 DPU Operator 创建的命名空间:

    $ oc delete namespace openshift-dpu-operator
    Copy to Clipboard Toggle word wrap

验证

  1. 运行以下命令验证 DPU Operator 是否已卸载:

    $ oc get csv -n openshift-dpu-operator
    Copy to Clipboard Toggle word wrap

    输出示例

    No resources found in openshift-dpu-operator namespace.
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat