面向 vSphere 管理员的 Red Hat OpenShift 中的开放虚拟网络(OVN)网络功能
了解 Red Hat OpenShift on IBM Cloud 中的开放虚拟网络(OVN)与NSX-T相比有何不同,以及如何使用用户定义网络(UDN)、集群用户定义网络(CUDN)和Localnet网络类型。
如果您使用过 NSX-T,那么您已经理解了其核心理念。 开放虚拟网络(OVN)是集成在 OpenShift 中的软件定义网络层。 它取代了旧版的 Calico 网络堆栈,其方式与NSX-T取代标准 vSwitches, 类似——即将网络智能转移到软件中,而非依赖底层的物理网络。 OVN 负责处理所有内部集群网络事务:虚拟机之间如何通信、如何连接到外部网络,以及如何在租户或工作负载之间隔离流量。
在部署新的 ROKS 集群时,您需要在部署阶段选择 OVN 或 Calico 其中之一。 它们之间没有迁移路径,就像在未进行计划性迁移的情况下,无法在正在运行的 VM 上在标准 vSwitch 和 dvSwitch 之间进行切换一样。
OVN 是内置于 Red Hat OpenShift on IBM Cloud 中的软件定义网络层。 与NSX-T取代标准 vSwitches, 类似,OVN通过将网络智能转移到软件中,而非依赖底层物理网络,从而取代了较早的 Calico 网络堆栈。 OVN 负责处理所有内部集群网络事务,包括虚拟机之间的通信方式、虚拟机如何连接到外部网络,以及如何在租户或工作负载之间隔离流量。
在部署新的 Red Hat® OpenShift® on IBM Cloud® 集群时,您需要在部署阶段选择OVN或 Calico,因为二者之间没有迁移路径。 在网络堆栈之间切换需要规划过渡过程,这类似于在正在运行的虚拟机上在标准 vSwitch 和 dvSwitch 之间进行切换。
网络类型
下表将 OVN 概念与大家熟悉的 vSphere 结构进行了对应:
| OVN 概念 | vSphere 等效 |
|---|---|
| UDN 还是 CUDN | NSX 逻辑分段或 dvPortGroup |
| 集群基础设施网络(主网络) | 后台基础架构——健康检查、DNS、Kubernetes 服务 |
| VM 工作负载网络(辅助) | 您实际的 VM 网络——您的应用程序所使用的 IP 地址 |
| masquerade | 网络地址转换(NAT)网络——虚拟机可以向外连接,但没有任何流量直接进入 |
| 第2层 中学 | 隔离的 NSX 覆盖段——静态 IP 地址,完全控制 |
| 第2层 初级 | 通过BGP上行链路连接到物理网络的NSX分段 |
| Localnet | 基于VLAN的 dvPortGroup ——直接转发至物理网络 |
UDN 和 CUDN
Red Hat OpenShift 将工作负载分组到命名空间中。 可以将命名空间视为资源池或文件夹,用于将一个应用程序或团队与另一个应用程序或团队隔离。 网络定义也遵循相同的模式:
- 用户定义网络(UDN)
- 范围限定为单个命名空间——相当于仅限一个集群或文件夹使用的端口组。
- 集群用户定义网络(CUDN)
- 可跨多个命名空间——相当于一个可从多个集群访问的共享 dvPortGroup。
通常会配置 CUDN,因为它们更灵活,且可以避免为每个需要访问同一网络段的命名空间重复定义网络。
集群基础设施网络与 VM 工作负载网络的对比
该术语与直觉相悖,因此理解这一概念非常重要。 OVN 将网络标记为主网络或辅助网络,但这些名称描述的是它们在 Red Hat OpenShift on IBM Cloud 集群中的作用,而非其对您的虚拟机的重要性。 映射关系如下:
- 集群基础设施网络(主网络)
- 处理 Kubernetes 内部流量的后台基础设施,例如健康检查、服务发现、负载均衡器的虚拟 IP 地址(VIP)以及内部 DNS。 通常情况下,您的虚拟机不会使用该网络传输应用程序流量。 将其保留为伪装网络。 必须存在该网络,才能确保 Red Hat OpenShift on IBM Cloud 中的内部Pod和服务继续正常运行。
- VM 工作负载网络(次要)
- 虚拟机运行的位置。 您的应用程序使用该网络,您通过 SSH 连接到其 IP 地址,并管理其子网。 由于这是一个二级网络,您可以完全控制 IP 地址的分配,包括静态分配。 对于几乎所有虚拟机工作负载而言,该网络都是理想之选。
从虚拟机的角度来看,这种命名方式似乎有悖常理。 从集群的角度来看,“主”指的是“集群自身的网络”,而“从”指的是“你连接到的其他所有网络” 对于虚拟机工作负载而言,“二级”绝非事后才考虑的因素。 该网络是主网络。
命名空间不需要集群基础设施网络。 如果您的虚拟机不需要 Kubernetes 服务、负载均衡器或内部DNS,则可以跳过此步骤,仅运行辅助网络。
网络拓扑
Masquerade - 集群基础设施网络(NAT)
将此网络作为集群基础设施主网络以及在集群中运行的 Pod 的标准选择。 如果您将其用于虚拟机网络,其工作原理就像是位于 NSX Edge 上某条 NAT 规则后方的虚拟机一样:
- 虚拟机可以向外部世界发起出站连接。
- 虚拟机无法直接接收来自外部源的传入连接。 流量必须经过负载均衡器或服务,就像您在 NSX Edge 上使用目标 NAT(DNAT)规则来公开服务一样。
- 虚拟机使用自动IP地址分配。 这不是由你来管理的。
- 虚拟机可以使用 Kubernetes 的全部网络功能,包括负载均衡器、服务、网络策略和DNS。
某些边缘用例可能需要为您的虚拟机配置“masquerade”网络,例如当您的虚拟机需要直接访问 Kubernetes 服务时。 然而,大多数虚拟机的使用场景并不使用伪装网络。
第2层主网络——可直接路由的虚拟机网络(BGP上行链路)
该拓扑结构等同于一个连接到 Tier-0 网关的NSX覆盖段,且该网关已启用BGP路由重分布功能。 当您需要虚拟机能够直接从外部网络访问,而无需经过负载均衡器或NAT时,请使用此较不常用的选项:
- 虚拟机直接从该子网段获取 IP 地址,并可通过路由从外部访问。
- 外部网络通过每个工作节点发布的 BGP 路由通告来连接各个虚拟机。 这种方法与 NSX Edge 服务路由器 (SR) 在重新分发连接路由时的操作方式相同。
- 虚拟机支持组播和广播。
- 启用第 2 层主网络时,命名空间无法使用伪装功能。 这两者无法并存。
目前,VPC 不支持动态路由服务(边界网关协议(BGP)),因此必须使用带有下一跳的自定义 VPC 路由。
IP地址分配采用“先到先得”的DHCP系统。 在虚拟机的生命周期内,IP 地址不会发生变化,但您无法为特定的虚拟机预先分配特定的 IP 地址。 如果您需要静态 IP 地址,请改用第 2 层辅助网络。
某些边缘用例可能需要为虚拟机配置主网络,例如当虚拟机需要直接访问 Kubernetes 服务时。 然而,大多数虚拟机的使用场景并不使用主网络。
第2层二级网络——虚拟机工作负载网络(隔离分段)
几乎所有虚拟机使用场景都应使用此网络类型。 该拓扑结构相当于一个没有外部上行链路的 NSX 覆盖段:一个由您完全控制的专用段。
- 该网络支持静态IP分配。 您可以管理 IP 地址分配,这是虚拟机工作负载的常规要求。
- 该网络不会自动连接到外部网络。 要提供外部访问,请将虚拟防火墙或路由器连接到该网络段,这与在 vSphere 中将NSX Edge或 pfSense 虚拟机连接到网络段的操作方式相同。
- 支持组播和广播。
- 您可以将多个第2层辅助网络连接到同一台虚拟机上。 此配置有助于将应用程序、管理和存储流量分别划分到不同的网络段中。
- 当网络配置为 CUDN 时,它可以跨越命名空间。
对于 Red Hat OpenShift 虚拟化中的大多数虚拟机工作负载而言,该网络是理想的选择。
Localnet - 直接 VLAN 直通
该拓扑结构最接近于基于 VLAN 的标准端口组或分布式虚拟端口组( dvPortGroup ),且不包含 NSX 覆盖网络。 虚拟机直接连接到物理主机所连接的网络:
- 该拓扑结构不使用软件定义网络(SDN)覆盖网络。 流量完全绕过了 OVN 软件交换。
- 此拓扑不提供 Red Hat OpenShift on IBM Cloud 网络服务,例如负载均衡、网络策略或内部DNS。
- 该拓扑不包含内置的 IP 地址管理功能。 您可通过 VPC 虚拟网络接口 (VNI) 分配 IP 地址。
- 您需要按可用区分别配置此拓扑。
- 该拓扑支持在同一台虚拟机上运行多个本地网络。
对于需要直接访问现有 VPC 子网的虚拟机,请使用 localnet。 例如,您可以迁移一个通过特定 VLAN 与本地系统通信的旧有工作负载,或者连接到集群外部的存储网络。
摘要
| 网络类型 | 角色 | 外部访问 | 静态IP地址 | Kubernetes 服务 | 广播/组播 |
|---|---|---|---|---|---|
| masquerade | 集群基础设施 | 通过NAT的出站流量 | 否 | 是 | 否 |
| 第2层(主) | 可直接路由的虚拟机 | 是的,通过 BGP 路由 | 否(仅支持 DHCP) | 是 | 是 |
| 第2层中学 | 虚拟机工作负载网络 | 通过连接的路由器或防火墙 | 是 | 是 | 是 |
| Localnet | 物理VLAN直通 | 直接访问VLAN | 手动 | 否 | 是 |
后续步骤
请查阅以下相关主题,了解有关特定 OVN 网络选项的更多详细信息: