通过使用 Multus CNI,您可以为 Pod 添加多个不同网络的网络接口。利用 Kube-OVN 网络的 Subnet 和 IP CRD 进行高级 IP 管理,实现子网管理、IP 预留、随机分配、固定分配等功能。
进入 管理员。
在左侧导航栏点击 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 保持一致。spec.vlan
为您想使用的 VLAN CR 名称。其他子网参数根据需要配置。创建后,应用该资源:
按照以下示例创建 Pod。
metadata.annotations
中必须包含键值对 k8s.v1.cni.cncf.io/networks=default/attachnet
,其中值的格式为 <NAMESPACE>/<NAME>
,<NAMESPACE>
和 <NAME>
分别是 NetworkAttachmentDefinition CR 的命名空间和名称。k8s.v1.cni.cncf.io/networks
的值为 default/attachnet,default/attachnet2
。Pod 创建成功后,使用命令 kubectl exec pod1 -- ip a
查看 Pod 的 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
字段,填写需要配置的路由。例如: