8.3. 在带有 Mellanox NIC 的 DPDK 模式中使用虚拟功能
您可以创建一个网络节点策略,并在带有 Mellanox NIC 的 DPDK 模式中使用虚拟功能创建 Data Plane Development Kit (DPDK) pod。
先决条件
- 
						已安装 OpenShift CLI(oc)。
- 已安装 Single Root I/O Virtualization (SR-IOV) Network Operator。
- 
						您已以具有 cluster-admin权限的用户身份登录。
流程
- 将以下 - SriovNetworkNodePolicyYAML 配置保存到- mlx-dpdk-node-policy.yaml文件中:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 如需了解 - SriovNetworkNodePolicy对象中的每个选项的详细说明,请参阅配置 SR-IOV 网络设备。- 当应用由 - SriovNetworkNodePolicy对象中指定的配置时,SR-IOV Operator 可能会排空节点,并在某些情况下会重启节点。它可能需要几分钟时间来应用配置更改。确保集群中有足够的可用节点,用以预先处理被驱除的工作负载。- 应用配置更新后, - openshift-sriov-network-operator命名空间中的所有 pod 将变为- Running状态。
- 运行以下命令来创建 - SriovNetworkNodePolicy对象:- oc create -f mlx-dpdk-node-policy.yaml - $ oc create -f mlx-dpdk-node-policy.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将以下 - SriovNetworkYAML 配置保存到- mlx-dpdk-network.yaml文件中:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 为 IP 地址管理 (IPAM) Container Network Interface (CNI) 插件指定一个配置对象作为 YAML 块 scalar。该插件管理附加定义的 IP 地址分配。
 注意- 如需了解 - SriovNetwork对象中的每个选项的详细说明,请参阅配置 SR-IOV 网络设备。- app-netutil选项库提供了几个 API 方法,用于收集有关容器父 pod 的网络信息。
- 运行以下命令来创建 - SriovNetwork对象:- oc create -f mlx-dpdk-network.yaml - $ oc create -f mlx-dpdk-network.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将以下 - PodYAML 配置保存到- mlx-dpdk-pod.yaml文件中:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 指定target_namespace,它与SriovNetwork对象mlx-dpdk-network创建于的命令空间相同。要在不同命名空间中创建 pod,在Podspec 和SriovNetwork对象中更改target_namespace。
- 2
- 指定包含应用程序和应用程序使用的 DPDK 库的 DPDK 镜像。
- 3
- 指定容器内的应用程序进行大页分配、系统资源分配和网络接口访问所需的额外功能。
- 4
- 将巨页卷挂载到/mnt/huge下的 DPDK pod 中。巨页卷由emptyDir卷类型支持,介质是Hugepages。
- 5
- 可选:指定分配给 DPDK pod 的 DPDK 设备数。如果没有明确指定,则 SR-IOV 网络资源注入程序会自动添加此资源请求和限制。SR-IOV 网络资源注入程序是由 SR-IOV Operator 管理的准入控制器组件。它默认是启用的,可以通过把默认的SriovOperatorConfigCR 中的enableInjector选项设置为false来禁用它。
- 6
- 指定 CPU 数量。DPDK pod 通常需要从 kubelet 分配专用 CPU。要做到这一点,将 CPU Manager 策略设置为static,并创建带有Guaranteed服务质量 (QoS) 的 pod。
- 7
- 指定巨页大小hugepages-1Gi或hugepages-2Mi以及分配给 DPDK pod 的巨页数量。单独配置2Mi和1Gi巨页。配置1Gi巨页需要在节点中添加内核参数。
 
- 运行以下命令来创建 DPDK pod: - oc create -f mlx-dpdk-pod.yaml - $ oc create -f mlx-dpdk-pod.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow