- 文档首页
容器服务
容器服务 VKE
最佳实践
网络
部署并运行 DPDK 应用
部署并运行 DPDK 应用
容器服务支持在 Pod 中开启 DPDK,适用于需要低延迟、高吞吐量的场景。本文介绍如何在集群中部署并运行 DPDK 应用。
DPDK(Data Plane Development Kit)是一种高性能网络数据面开发工具包,通过采用用户态轮询驱动、大页内存、CPU 亲和性、无锁队列等技术,绕过传统 Linux 内核协议栈,大幅减少中断、上下文切换与系统调用开销,显著提升数据包转发性能,单 CPU 核可实现千万级 PPS 的处理能力。
在 DPDK 模式下,允许将主机网卡通过直通的方式分配至容器,作为 DPDK 高性能数据面网卡使用。 通过 Pod 挂载双网卡,可实现业务面与控制面流量物理隔离,避免带宽争抢与延迟扰动,保障微秒级转发稳定。
- 已安装 vpc-cni 组件,并升级至 v1.9.6 及以上版本。
- 在集群的节点中,已启用 VFIO 设备驱动。您可以在节点上执行如下命令,确定 VFIO 驱动是否启用。
- 仅支持在 VPC-CNI 容器网络模型的集群中使用。
- 节点可挂载网卡数量 ≥ 3,即至少包含主网卡,辅助网卡和独占网卡。
- 仅支持在新节点开启 DPDK,推荐配置专属的节点池。
- 在左侧导航栏中,选择 集群。单击目标集群名称,进入集群管理页面。
- 在 命名空间 下拉菜单中选择 kube-system,找到 cello-config,单击 操作 栏中的 编辑 Yaml。
- 在data.conf字段中,添加exclusiveENIPoolQuota字段,开启节点的 DPDK 功能。
说明
推荐开启节点池级的 DPDK 功能。您可以在节点池的配置项中添加exclusiveENIPoolQuota字段。节点池级别配置项的配置方式,请参见 配置节点池级别 Pod 安全组和子网。 注意
如果您配置完成后需要修改上述配置,修改后请注意需要重启 cello Pod 才能生效。
您可以手工配置指定节点中的 HugePages 功能,操作步骤如下:
- 执行以下命令,在 sysctl 配置文件中配置节点 HugePages 数量。
说明
- 本例中以配置 2Mi HugePages 数量为例,实际配置时请按需调整。
- 更多节点 HugePages 特性说明,请参见 官方文档。
您可以在创建/编辑节点池时,使用部署执行脚本,批量配置节点中的 HugePages 功能。操作步骤如下:
- 在左侧导航栏中,选择 集群,单击目标集群名称,进入集群管理页面。
- 在左侧导航栏中,选择 节点管理 >节点池,新建或编辑已有节点池。
- 在 高级配置 中的 部署执行脚本 配置中,新增如下脚本。
-
- 完成其他节点池配置后,单击 确定,完成节点池配置。节点池的其他参数配置说明,请参见 创建托管节点池。
配置完成后,您可以 通过 kubectl 连接集群,执行以下命令,查看节点信息。其中${node-ip}为节点 IP 地址,例如 192.168.1.188。 预期结果如下,可以看到节点中允许分配或已分配的 HugePages 和 ENI 数量。
- (可选)您可以使用如下 Dockerfile 示例,构建 DPDK 测试镜像。并在镜像中安装 testpmd,用于测试。
- 使用上述镜像创建 Pod,并配置 DPDK。关键配置如下:
- 挂载 VFIO 设备:使用hostPath类型的 Volume 将宿主机的/dev目录挂载到容器的/dev。
- HugePages 内存申请:在 Pod 配置中声明 DPDK 应用所需 HugePages 与内存限制。
- 网卡驱动绑定:容器启动前,执行mount -o remount,rw /sys/ && dpdk-devbind.py --force -b vfio-pci eth0,将 Pod 的网卡驱动卡绑定到 vfio-pci 驱动。
- 配置完成后,系统会自动为 Pod 补全 Annotationk8s.volcengine.com/network-status,展示该 Pod 挂载的网卡信息。例如在本例中,Pod 挂载了 2 块网卡,IP 地址分别为192.168.1.242和192.168.1.244。
-
- RESOURCE_NAME:表示 Pod 中的 PCI 设备名称。
- PCIDEVICE_VOLCENGINE_COM_ENI:表示对应 PCI 设备的地址(BDF)。
您可以在 Pod 中安装 testpmd,验证 DPDK 功能。更多详情,请参见 官方文档。 - 执行以下命令,启动 testpmd,查看 DPDK 是否工作正常。
当 DPDK 程序退出后,请在 Pod 中执行以下命令,手工清除 driver_override。
最近更新时间:2026.10.23 10:37:21