配置 Kube-OVN 网络以支持 Pod 多网卡(Alpha)
通过使用 Multus CNI,您可以为 Pod 添加多个不同网络的网络接口。利用 Kube-OVN 网络的 Subnet 和 IP CRD 进行高级 IP 管理,实现子网管理、IP 预留、随机分配、固定分配等功能。
目录
安装 Multus CNI
部署 Multus CNI 插件
-
进入 管理员。
-
在左侧导航栏点击 Marketplace > Cluster Plugins。
-
在搜索框输入 “multus” 查找 Multus CNI 插件。
-
在列表中找到 "Alauda Container Platform Networking for Multus" 插件。
-
点击插件条目旁的三点(⋮),选择 安装。
-
插件将部署到您的集群中,您可以在 状态 列监控安装进度。
Multus CNI 插件作为其他 CNI 插件与 Kubernetes 之间的中间件,使 Pod 支持多个网络接口。
创建子网
根据以下示例创建 attachnet 子网:network-attachment-definition.yml。
config 中的 provider 格式为 <NAME>.<NAMESPACE>.ovn,其中 <NAME> 和 <NAMESPACE> 分别是该 NetworkAttachmentDefinition CR 的名称和命名空间。
创建后,应用该资源:
使用以下示例创建第二个网络接口的 Kube-OVN 子网:subnet.yml。
spec.provider必须与 NetworkAttachmentDefinition 中的 provider 保持一致。- 若需使用 Underlay 子网,设置子网的
spec.vlan为您想使用的 VLAN CR 名称。其他子网参数根据需要配置。
创建后,应用该资源:
创建多网卡 Pod
按照以下示例创建 Pod。
metadata.annotations中必须包含键值对k8s.v1.cni.cncf.io/networks=default/attachnet,其中值的格式为<NAMESPACE>/<NAME>,<NAMESPACE>和<NAME>分别是 NetworkAttachmentDefinition CR 的命名空间和名称。- 若 Pod 需要三个网络接口,配置
k8s.v1.cni.cncf.io/networks的值为default/attachnet,default/attachnet2。
Pod 创建成功后,使用命令 kubectl exec pod1 -- ip a 查看 Pod 的 IP 地址。
验证双网卡创建
使用以下命令验证双网卡是否创建成功:
其他功能
固定 IP
-
主网卡(第一个接口):若需固定主网卡 IP,方法与单网卡固定 IP 相同,在 Pod 上添加注解
ovn.kubernetes.io/ip_address=<IP>。 -
次网卡(第二个或其他接口):基本方法与主网卡类似,区别是注解键中的
ovn替换为对应 NetworkAttachmentDefinition 的 provider。例如:attachnet.default.ovn.kubernetes.io/ip_address=172.170.0.101。
额外路由
从版本 1.8.0 起,Kube-OVN 支持为次网卡配置额外路由。使用该功能时,在 NetworkAttachmentDefinition 的 config 中添加 routes 字段,填写需要配置的路由。例如: