面向 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 网络架构的对应关系
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 与本地系统通信的旧有工作负载,或者连接到集群外部的存储网络。

摘要

针对虚拟机工作负载的OVN网络拓扑选项比较
网络类型 角色 外部访问 静态IP地址 Kubernetes 服务 广播/组播
masquerade 集群基础设施 通过NAT的出站流量 否 是 否
第2层(主) 可直接路由的虚拟机 是的,通过 BGP 路由 否(仅支持 DHCP) 是 是
第2层中学 虚拟机工作负载网络 通过连接的路由器或防火墙 是 是 是
Localnet 物理VLAN直通 直接访问VLAN 手动 否 是

后续步骤

请查阅以下相关主题,了解有关特定 OVN 网络选项的更多详细信息: