2.2. RHOSO OVN 架构中的组件列表
开放虚拟网络(OVN)在 OpenShift (RHOSO)环境中为 Red Hat OpenStack Services 提供网络服务。如图 2.1 所示,OVN 架构由以下组件和服务组成:
- 网络服务
- 此服务运行 OpenStack 网络 API 服务器,它为最终用户和服务提供 API 与 OpenStack 网络交互。此服务器也与底层数据库集成,以存储和检索项目网络、路由器和负载平衡器详细信息,等等。
- Compute 节点
- 此节点托管运行虚拟机的虚拟机监控程序,也称为实例。Compute 节点必须直接连接到网络,以便为实例提供外部连接。
- ML2 插件带有 OVN 机制驱动程序
- ML2 插件将 OpenStack 特定的网络配置转换为平台中立的 OVN 逻辑网络配置。它通常在 OpenShift worker 节点上的 RHOSO 控制平面上运行。
- OVN 北向 (NB) 数据库(
ovn-nb) 此数据库存储 OVN ML2 插件的逻辑 OVN 网络配置。它通常在 RHOSO 控制平面上运行,并侦听 TCP 端口
6641。北向数据库(
OVN_Northbound)充当 OVN 和云管理系统(如 RHOSO)之间的接口。RHOSO 生成北向数据库的内容。北向数据库包含网络的当前状态,以逻辑端口、逻辑交换机、逻辑路由器等形式显示。每个 RHOSO 网络服务(neutron)对象都在北向数据库的一个表中表示。
- OVN 北向服务 (
ovn-northd) - 此服务将 OVN NB 数据库中的逻辑网络配置转换为逻辑数据路径流,并在 OVN 南向数据库中填充它们。它通常在 RHOSO 控制平面上运行。
- OVN 南向 (SB) 数据库 (
ovn-sb) 此数据库存储转换的逻辑数据路径流。它通常在 RHOSO 控制平面上运行,并侦听 TCP 端口
6642。南向数据库 (
OVN_Southbound) 包含 OVN 系统的逻辑和物理配置状态,以支持虚拟网络抽象。ovn-controller使用此数据库中的信息来配置 OVS,以满足网络服务 (neutron) 要求。
NB 数据库的 schema 文件位于 /usr/share/ovn/ovn-nb.ovsschema 中,SB 数据库架构文件位于 /usr/share/ovn/ovn-sb.ovsschema。
- OVS 数据库服务器 (OVSDB)
-
托管 OVN 北向和南向数据库。另外,与
ovs-vswitchd交互,以托管 OVS 数据库conf.db。 - OVN 控制器 (
ovn-controller) - 此控制器连接到 OVN SB 数据库,并充当 Open vSwitch 控制器来控制和监控网络流量。它在所有 Compute 和 gateway 节点上运行。
- OVN 元数据代理 (
ovn-metadata-agent) 此代理创建用于管理 OVS 接口的
haproxy实例、网络命名空间和 HAProxy 进程,用于代理元数据 API 请求。代理在所有计算和网关节点上运行。OVN 网络服务为每个虚拟网络创建一个唯一的网络命名空间,以启用元数据服务。Compute 节点上的实例访问的每个网络都有对应的元数据命名空间 (ovnmeta-<network_uuid>)。
OpenStack 客户机实例访问位于本地链接 IP 地址:169.254.169.254 的联网元数据服务。
neutron-ovn-metadata-agent可以访问存在计算元数据 API 的主机网络。每个 HAProxy 都位于一个不能到达适当主机网络的网络命名空间中。HAProxy 将所需的标头添加到元数据 API 请求,然后通过 UNIX 域套接字将请求转发到neutron-ovn-metadata-agent。
图 2.1. RHOSO 环境中的 OVN 架构