第 17 章 多网络
17.1. 了解多网络
默认情况下,OVN-Kubernetes 充当 OpenShift Container Platform 集群的 Container Network Interface (CNI)。使用 OVN-Kubernetes 作为集群的默认 CNI,OpenShift Container Platform 管理员或用户可以利用 用户定义的网络(UDN) 或 NetworkAttachmentDefinition (NAD) 创建一个或多个处理集群所有普通网络流量的默认网络。用户定义的网络和网络附加定义可用作以下网络类型:
- 主网络: Act 作为 pod 的主要网络。默认情况下,所有流量都通过主网络,除非将 pod 路由配置为通过其他网络发送流量。
- 二级网络 :对 pod 使用额外的非默认网络。二级网络提供专用于特定流量类型或目的的独立接口。只有明确配置为使用二级网络的 pod 流量才会通过其接口路由。
但是,在集群安装过程中,OpenShift Container Platform 管理员可以使用 Multus CNI 插件配置替代的默认二级 pod 网络。使用 Multus 时,可以一起使用多个 CNI 插件,如 ipvlan、macvlan 或 Network Attachment Definitions,以用作 pod 的二级网络。
只有 OVN-Kubernetes 用作 CNI 时,用户定义的网络才可用。它们不支持与其他 CNI 一起使用。
您可以基于可用的 CNI 插件定义额外网络,并将一个或多个此类网络附加到 pod。您可以根据需要为集群定义多个额外网络。这可让您灵活地配置提供交换或路由等网络功能的 pod。
如需支持的 CNI 插件的完整列表,请参阅 "在 OpenShift Container Platform 中添加网络"。
有关用户定义的网络的详情,请参考关于用户定义的网络(UDN)。
有关网络附加定义的详情,请参考使用 NetworkAttachmentDefinition 创建主网络。
17.1.1. 额外网络使用场景
您可以在需要网络隔离的情况下使用额外网络,包括分离数据平面与控制平面。隔离网络流量对以下性能和安全性原因很有用:
性能
流量管理:您可以在两个不同的平面上发送流量,以管理每个平面上流量的多少。
安全性
网络隔离:您可以将敏感的流量发送到专为安全考虑而管理的网络平面,也可隔离不能在租户或客户间共享的私密数据。
集群中的所有 pod 仍然使用集群范围的默认网络,以维持整个集群中的连通性。每个 pod 都有一个 eth0
接口,附加到集群范围的 pod 网络。您可以使用 oc exec -it <pod_name> -- ip a
命令来查看 pod 的接口。如果您添加使用 Multus CNI 的额外网络接口,则名称为 net1
、net2
、…、netN
。
要将额外网络接口附加到 pod,您必须创建配置来定义接口的附加方式。您可以使用 UserDefinedNetwork
自定义资源 (CR) 或 NetworkAttachmentDefinition
CR 指定每个接口。各个 CR 中的 CNI 配置定义如何创建该接口。
有关创建 UserDefinedNetwork
CR 的更多信息,请参阅关于用户定义的网络。
有关创建 NetworkAttachmentDefinition CR 的更多信息,请参阅使用 NetworkAttach mentDefinition 创建主网络。
17.1.2. OpenShift Container Platform 中的额外网络
OpenShift Container Platform 提供以下 CNI 插件,以便在集群中创建额外网络:
- bridge :配置基于网桥的额外网络,以允许同一主机上的 pod 相互通信,并与主机通信。
- host-device:配置 host-device 额外网络,以允许 pod 访问主机系统上的物理以太网网络设备。
- ipvlan :配置基于 ipvlan 的额外网络,以允许主机上的 Pod 与其他主机和那些主机上的 pod 通信,这类似于基于 macvlan 的额外网络。与基于 macvlan 的额外网络不同,每个 pod 共享与父级物理网络接口相同的 MAC 地址。
- vlan :配置基于 VLAN 的额外网络,以为 pod 启用基于 VLAN 的网络隔离和连接。
- macvlan:配置基于 macvlan 的额外网络,以允许主机上的 Pod 通过使用物理网络接口与其他主机和那些主机上的 Pod 通信。附加到基于 macvlan 的额外网络的每个 pod 都会获得一个唯一的 MAC 地址。
- TAP :配置基于 TAP 的额外网络,以在容器命名空间内创建 tap 设备。TAP 设备可让用户空间程序发送和接收网络数据包。
- SR-IOV :配置基于 SR-IOV 的额外网络,以允许 pod 附加到主机系统上支持 SR-IOV 的硬件的虚拟功能(VF)接口。