使用SR-IOV网络创建Pod时报mlx5_core CREATE_SQ参数错误故障求助
SR-IOV Pod创建失败排查解决步骤
你遇到的mlx5_core CREATE_SQ报错、容器内网卡启动返回invalid argument问题,根因多集中在VF配置错误、驱动固件不兼容、K8s SR-IOV组件配置不匹配三类,可按以下顺序排查:
1. 基础SR-IOV配置校验
- 确认物理网卡SR-IOV已开启,VF数量配置生效:执行
lspci | grep Mellanox确认b5:00.0对应的VF设备已全部被系统识别 - 确认IOMMU已正确开启:执行
cat /proc/cmdline检查参数,Intel平台需包含intel_iommu=on iommu=pt,AMD平台需包含amd_iommu=on iommu=pt,缺少参数需更新grub配置后重启主机 - 确认RDMA相关内核模块正常加载:执行
lsmod | grep rdma验证ib_uverbs、ib_ipoib、mlx5_ib模块均已加载 - 检查VF无占用冲突:执行
lsof /dev/infiniband/*确认要分配的VF没有被主机上其他进程占用
2. 驱动与固件适配校验
- 你使用的ConnectX-6 Dx网卡搭配mlx5_core 5.0-0.0驱动,要求网卡固件版本不低于20.31.1014,执行
mstflint -d 0000:b5:00.0 q可查看当前固件版本,版本过低需先升级网卡固件再重试,驱动固件版本不匹配是触发CREATE_SQ bad parameter报错的最常见原因 - 确认VF驱动绑定正确,不要将VF绑定到物理网卡的mlx5_core驱动,RDMA场景需绑定到
mlx5_vfio驱动,普通网络场景可绑定vfio-pci驱动
3. K8s SR-IOV组件配置校验
- 检查Mellanox SR-IOV设备插件配置,确认其上报的资源名
mellanox.com/mlnx_sriov_rdma与Pod中声明的资源名完全一致,且配置的PCI地址段包含b5:00.0对应的VF地址 - 确认SR-IOV CNI版本不低于v2.2,Multus CNI版本不低于v3.8,低版本CNI和mlx5 5.0驱动存在兼容性问题,会出现参数传递错误
- 检查
sriov-rdma-net1对应的NetworkAttachmentDefinition配置,确认master参数指定的是b5:00.0对应的PF网卡名,且配置的MTU、VLAN参数与物理网络匹配,MTU超过物理网卡上限也会触发接口启动invalid argument报错
4. Pod配置修正
- 你当前使用的alpine镜像默认未预装bash,可将Pod的command和args修改为
command: ["sleep"] args: ["inf"],避免镜像本身缺少二进制文件带来的额外干扰 - 确认本地
alpine镜像已正确导入,imagePullPolicy: Never配置下如果本地无对应镜像也会引发关联报错
以上步骤全部排查完成后如果问题仍存在,可先跳过K8s,直接在主机上用docker/containerd将VF分配给普通容器验证可用性,排除K8s组件配置问题。
内容的提问来源于stack exchange,提问作者Vaishali ch
相关产品推荐
相关产品推荐

