24.11. 使用 pod 级别绑定
在 pod 级别的绑定对于启用需要高可用性和更多吞吐量的 pod 内的工作负载至关重要。使用 pod 级别绑定,您可以在内核模式接口上从多个根 I/O 虚拟化(SR-IOV)虚拟功能接口创建绑定接口。SR-IOV 虚拟功能传递到 pod,并附加到内核驱动程序中。
需要 pod 级别绑定的一个场景是从不同物理功能的多个 SR-IOV 虚拟功能创建绑定接口。可以利用主机上的两个不同物理功能创建绑定接口,以便在 pod 级别上实现高可用性。
有关创建 SR-IOV 网络、网络策略、网络附加定义和 pod 等任务的指导,请参阅配置 SR-IOV 网络设备。
24.11.1. 从两个 SR-IOV 接口配置绑定接口 复制链接链接已复制到粘贴板!
绑定可让多个网络接口聚合到一个逻辑 "bonded" 接口。绑定 Container Network Interface (Bond-CNI) 将绑定功能引入容器中。
Bond-CNI 可使用单根 I/O 虚拟化 (SR-IOV) 虚拟功能创建,并将它们放在容器网络命名空间中。
OpenShift Container Platform 仅支持使用 SR-IOV 虚拟功能的 Bond-CNI。SR-IOV Network Operator 提供了管理虚拟功能所需的 SR-IOV CNI 插件。不支持其他 CNI 或接口类型。
先决条件
- 必须安装 SR-IOV Network Operator,并配置为获取容器中的虚拟功能。
- 要配置 SR-IOV 接口,必须为每个接口创建一个 SR-IOV 网络和策略。
- SR-IOV Network Operator 根据定义的 SR-IOV 网络和策略,为每个 SR-IOV 接口创建一个网络附加定义。
-
linkState
设置为 SR-IOV 虚拟功能的默认值auto
。
24.11.1.1. 创建绑定网络附加定义 复制链接链接已复制到粘贴板!
现在,SR-IOV 虚拟功能可用,您可以创建一个绑定网络附加定义。
- 1
- cni-type 始终设置为
bond
。 - 2
mode
属性指定绑定模式。注意支持的绑定模式有:
-
balance-rr
- 0 -
active-backup
- 1 -
balance-xor
- 2
对于
balance-rr
或balance-xor
模式,您必须为 SR-IOV 虚拟功能将trust
模式设置为on
。-
- 3
- active-backup 模式的
failover
属性是必需的,必须设为 1。 - 4
linksInContainer=true
标志告知 Bond CNI 在容器内找到所需的接口。默认情况下,Bond CNI 会查找主机上的这些接口,该接口无法与 SRIOV 和 Multus 集成。- 5
links
部分定义将用于创建绑定的接口。默认情况下,Multus 将附加的接口命名为 "net",再加上一个连续的数字。
24.11.1.2. 使用绑定接口创建 pod 复制链接链接已复制到粘贴板!
使用名为 example
podbonding.yaml
的 YAML 文件创建 pod 来测试设置,其内容类似以下示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 注意网络注解:它包含两个 SR-IOV 网络附加,以及一个绑定网络附加。绑定附加使用两个 SR-IOV 接口作为绑定的端口接口。
运行以下命令来应用 yaml:
oc apply -f podbonding.yaml
$ oc apply -f podbonding.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令检查 pod 接口:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果在 pod 注解中没有配置接口名称,接口名称会自动分配为
net<n>
,其中<n>
以1
开始。可选: 如果要为 example
bond0
设置一个特定的接口名称,请编辑k8s.v1.cni.cncf.io/networks
注解,并将bond0
设为接口名称,如下所示:annotations: k8s.v1.cni.cncf.io/networks: demo/sriovnet1, demo/sriovnet2, demo/bond-net1@bond0
annotations: k8s.v1.cni.cncf.io/networks: demo/sriovnet1, demo/sriovnet2, demo/bond-net1@bond0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow