如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
此插件支持在容器和 Kubernetes 等编排器中配置和使用 SR-IOV VF 网络。
具备 SR-IOV 功能的网络接口卡(NICs)通过物理功能(PFs)和虚拟功能(VFs)进行管理。PF 由主机使用,通常代表单个 NIC 端口。VF 配置通过 PF 应用。借助 SR-IOV CNI,每个 VF 可被视为独立的网络接口,分配给容器,并配置自己的 MAC、VLAN、IP 等。
SR-IOV CNI 插件与 https://github.com/k8snetworkplumbingwg/sriov-network-device-plugin 配合使用,以在 Kubernetes 中分配 VF。元插件(如 https://github.com/intel/multus-cni%EF%BC%89%E8%8E%B7%E5%8F%96%E5%B7%B2%E5%88%86%E9%85%8D VF 的 deviceID(PCI 地址),并负责使用该 deviceID 调用 SR-IOV CNI 插件。
此插件使用 Go modules 进行依赖管理,需要 Go 1.17+ 版本进行构建。
构建插件二进制文件:
make
构建成功后,插件二进制文件将位于 build/sriov。
有关在 Kubernetes 中编排 SR-IOV 虚拟功能的完整指南,请参见 https://github.com/k8snetworkplumbingwg/sriov-network-device-plugin#quick-start%E3%80%82
创建 VF 不在 SR-IOV CNI 插件的范围内。https://github.com/k8snetworkplumbingwg/sriov-network-device-plugin/blob/master/docs/vf-setup.md
要在 Kubernetes 1.16+ 集群上单独部署 SR-IOV CNI:
kubectl apply -f images/sriov-cni-daemonset.yaml
[!NOTE] 上述部署不足以管理和配置 SR-IOV 虚拟功能。https://github.com/k8snetworkplumbingwg/sriov-network-device-plugin#sr-iov-network-device-plugin
SR-IOV CNI 网络通常使用 Multus 和 SR-IOV 设备插件通过网络附加定义(Network Attachment Definitions)进行配置。有关使用此模式配置 Kubernetes 网络的更多信息,请参见 https://github.com/k8snetworkplumbingwg/multus-cni/blob/master/docs/configuration.md%E3%80%82
SR-IOV CNI 的网络附加定义格式如下:
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: sriov-net1
annotations:
k8s.v1.cni.cncf.io/resourceName: intel.com/intel_sriov_netdevice
spec:
config: '{
"type": "sriov",
"cniVersion": "0.3.1",
"name": "sriov-network",
"ipam": {
"type": "host-local",
"subnet": "10.56.217.0/24",
"routes": [{
"dst": "0.0.0.0/0"
}],
"gateway": "10.56.217.1"
}
}'
.spec.config 字段包含 SR-IOV CNI 使用的配置信息。
以下参数是通用参数,并非特定于 SR-IOV CNI 配置,但(除 ipam 外)需要包含在配置中。
cniVersion:使用的 CNI 规范版本。type:使用的 CNI 插件。"sriov" 对应 SR-IOV CNI。name:创建的网络名称。ipam(可选):IP 地址管理插件的配置。为内核接口指定 IP 时必需。以下示例显示了在容器中设置基本 SR-IOV 网络所需的配置。下面的每个 JSON 配置对象都可以放在网络附加定义的 .spec.config 字段中,以与 Multus 集成。
内核驱动配置
这是使用 SR-IOV 虚拟功能的内核驱动接口的最小配置。它使用 host-local IPAM 插件在提供的子网范围内应用 IP 地址。
{
"type": "sriov",
"cniVersion": "0.3.1",
"name": "sriov-network",
"ipam": {
"type": "host-local",
"subnet": "10.56.217.0/24",
"routes": [{
"dst": "0.0.0.0/0"
}],
"gateway": "10.56.217.1"
}
}
高级内核驱动配置
此配置设置了许多可能对 SR-IOV 网络至关重要的额外参数,包括 VLAN 标签、禁用欺骗检查和启用信任模式。这些参数通常在更高级的基于 SR-IOV VF 的网络中设置。
{
"cniVersion": "0.3.1",
"name": "sriov-advanced",
"type": "sriov",
"vlan": 1000,
"spoofchk": "off",
"trust": "on",
"ipam": {
"type": "host-local",
"subnet": "10.56.217.0/24",
"routes": [{
"dst": "0.0.0.0/0"
}],
"gateway": "10.56.217.1"
}
}
DPDK 用户空间驱动配置
以下配置将使用用户空间驱动(uio/vfio)配置 VF,供容器使用。如果此插件与绑定到 dpdk 驱动的 VF 一起使用,IPAM 配置仍将被遵守,但只会使用指定的 IPAM 插件分配 IP 地址,不会将 IP 地址应用到容器接口。其他配置参数应适用,但实现可能因驱动而异。
{
"cniVersion": "0.3.1",
"name": "sriov-dpdk",
"type": "sriov",
"vlan": 1000
}
[!NOTE] https://github.com/containernetworking/plugins/tree/master/plugins/ipam/dhcp IPAM 插件不能用于绑定到 dpdk 驱动(uio/vfio)的 VF。
[!NOTE] 当网络附加定义中未指定 VLAN 或指定值为 0 时,连接到此网络的 VF 将没有 VLAN 标签。
SR-IOV CNI 允许设置其他 SR-IOV 选项,如链路状态和服务质量参数。要了解如何设置这些参数,请参阅 SR-IOV CNI 配置参考指南
要报告错误或请求功能,请使用可用模板在本仓库中打开 issue。
来自真实用户的反馈,见证轩辕镜像的优质服务