创建 Multus CR¶
Multus CR 管理,是 Spiderpool 对 Multus CNI 中配置实例的二次封装。旨在为容器提供更灵活的网络连接和配置选项,以满足不同的网络需求, 为用户提供更简单和经济高效的使用体验。本页介绍在创建工作负载使用多网卡配置之前,如何创建 Multus CR。 如需创建新的 Multus CR 实例,可参考此文档。
前提条件¶
SpiderPool 已成功部署,新版本的 SpiderPool 已包含 Multus-underlay 的全部功能。
界面操作¶
-
登录 DCE UI 后,在左侧导航栏点击
容器管理
—>集群列表
,找到对应集群。然后在左侧导航栏点击容器网络
—>网络配置
。 -
进入
网络配置
—>Multus CR 管理
,点击创建Multus CR
。Note
注意:创建 Multus CR 时,CNI 类型只能为
macvlan
、ipvlan
、sriov
、自定义
四种类型四选一,可分成三种场景,参考以下三种参数方式进行配置。
创建 macvlan 或 ipvlan 类型的 Multus CR¶
请输入如下参数:
参数说明:
名称
:Multus CNI 配置的实例名称,即 Multus CR 名称。描述
:实例的描述信息。CNI 类型
:CNI 的类型,目前界面可选择macvlan
,ipvlan
。VLAN ID
:当 CNI 类型为macvlan
,ipvlan
,sriov
时被允许配置, "0" 和 ""的效果一样。网卡配置
:网卡配置中包含接口配置信息。- 请确保主网卡存在于主机上。
- 如果使用基于 MacVlan/IPVlan 的共享 RDMA 功能,请确保该网卡具备 RDMA 能力。
- 当网卡接口数量为一个时,则默认网卡配置中只有一个网卡接口。当添加接口数量大于等于两个时,可以做 Bond 相关配置。
网卡接口
:只用于 CNI 类型 为macvlan
,ipvlan
,至少有一个元素。如果有两个及其以上的元素, bond 必须不能为空。-
Bond 信息
:名称不能为空,模式必须在范围 [0,6] 内, 分别对应七种模式:- balance-rr
- active-backup
- balance-xor
- broadcast
- 802.3ad
- balance-tlb
- balance-alb
-
IPv4 默认池
:CNI 配置文件 IPv4 默认池。 IPv6 默认池
:CNI 配置文件 IPv6 默认池。 参数是可选的, 输入格式为k1=v1;k2=v2;k3=v3
,用;
隔开。
VLAN 配置说明¶
- Underlay 网络是指底层物理网络,通常涉及 VLAN 网络。如果 Underlay 网络不涉及到 VLAN 网络,不需要配置
VLAN ID
(默认值为 0 即可)。 - 对于 VLAN 子接口:
- 如果网络管理员已经创建好 VLAN 子接口,那么不需要填写
VLAN ID
(默认值为 0 即可),只需要将创建好的 VLAN 子接口 填入到网卡接口
(Master) 字段。 - 如果需要自动创建 VLAN 子接口 ,那么需要配置
VLAN ID
,并将主网卡接口
(Master) 设置为对应的 父接口。Spiderpool 在创建 Pod 时,在主机上动态创建一个名为:<master>.<vlanID>
的 子接口,以将 Pod 连接到 VLAN 网络。
- 如果网络管理员已经创建好 VLAN 子接口,那么不需要填写
- 对于 Bond 网卡:
- 如果网络管理员已经创建好 Bond 网卡,并且使用 Bond 网卡 连接 Pod 的 Underlay 网络,那么不需要填写
VLAN ID
(默认值为 0 即可),只需要将创建好的 Bond 网卡名称 填入到网卡接口
(Master) 字段。 - 如果需要自动创建 Bond 网卡 而不需要创建 VLAN 子接口 ,设置
VLAN ID
为0
,并配置至少 2 个网卡接口
(Master) 以组成Bond
的Slave
网卡。Spiderpool 在创建 Pod 时,在主机上动态创建一张 Bond 网卡,以用于连接 Pod 的 Underlay 网络。
- 如果网络管理员已经创建好 Bond 网卡,并且使用 Bond 网卡 连接 Pod 的 Underlay 网络,那么不需要填写
-
对于 RDMA 网卡:
- 如果基于 Macvlan/IPVLAN/SRIOV 暴露主机上的 RoCE 网卡给到 Pod 使用时, VLAN ID 无需填写,默认为 0 即可。
-
使用 Bond 网卡创建 VLAN 子接口:
- 如果需要在创建 Bond 网卡 的同时,需要创建 VLAN 子接口 来承接 Pod 网络, 需要配置
VLAN ID
。Spiderpool 在创建 Pod 时,在主机上动态创建一个名为:<bondName>.<vlanID>
的 VLAN 子接口 ,以用于连接 Pod 的 VLAN 网络。 - 所有通过 Spiderpool 创建的接口,都不会配置 IP,并且这些接口不是持久化的。如果被意外删除或节点重启,这些接口将会被删除,重启 Pod 后会自动重新创建这些接口。如果需要持久化这些接口或者配置 IP 地址,可以考虑使用 nmcli 工具。
- 如果需要在创建 Bond 网卡 的同时,需要创建 VLAN 子接口 来承接 Pod 网络, 需要配置
创建 SR-IOV 类型的 Multus CR¶
请输入如下参数:
CNI 类型
:选择 SR-IOVVlan ID
: 必需填入0
RDMA
:默认关闭。如果需要开启,请满足 RDMA 资源使用条件SR-IOV 资源
:只用于sriov
类型, 选择资源名称。如何查看 SR-IOV 资源
请参考:SR-IOV CNI 配置
SR-IOV 资源配置说明:
SR-IOV resourceName
为部署sriovnetworknodepolicies
时自定义名称。
如果 基于 SR-IOV 搭配 RDMA 使用,SR-IOV 资源配置查询如下:
命令查询:
如下的 spidernet.io/sriov_netdevice_enp4s0f0np0
为查询的资源名称。
kubectl get no -o json | jq -r '[.items[] | {name:.metadata.name, allocable:.status.allocatable}]'
[
{
"name": "10-20-1-220",
"allocable": {
"cpu": "56",
"ephemeral-storage": "3971227249029",
"hugepages-1Gi": "0",
"hugepages-2Mi": "0",
"memory": "131779740Ki",
"pods": "110",
"spidernet.io/hca_shared_devices": "0",
"spidernet.io/mellanoxrdma": "0",
"spidernet.io/sriov_netdevice": "0",
"spidernet.io/sriov_netdevice_enp4s0f0np0": "8", # 查询的 RDMA 设备资源名称及数量
...
}
}
界面查询:
查询的resourceName
需要加上 spidernet.io/
前缀。
创建自定义类型的 Multus CR¶
请输入如下参数:
JSON
:自定义类型时,需判断输入一个合法格式的 Json 文件。
创建完成后工作负载即可使用 Multus CR 管理。