当前位置: 首页 > 工具软件 > k8s-ovs > 使用案例 >

【kubernetes/k8s概念】ovn架构

殳凯捷
2023-12-01

   OVN, the Open Virtual Network,是一个在虚拟机和容器环境中支持逻辑网络抽象的系统。OVN 补充了 OVS 的现有功能,以添加对逻辑网络抽象的本机支持,例如逻辑 L2 和 L3 覆盖和安全组。就像 OVS 一样,OVN 的设计目标是拥有可以大规模运行的生产质量实现。

   OVN 包括如下组件:

  •  CMS(Cloud Management System),一个云管理系统,可以理解为 OVN 的最终用户(通过其用户和管理员),OVN 最初目标 CMS 是 OpenStack
  •  中心位置的 OVN 数据库,可以是物理或者虚拟节点,设置可以是集群模式
  •  hypervisors,  hypervisors 必须可以运行 Open vSwitch 并能够执行 IntegrationGuide.rst 源代码树中所述的接口。任何支持的 OVS 的 hypervisor 平台都是可以接受的。
  • gateways,网关通过基于隧道的逻辑网络扩展为物理网络,使能够在隧道和物理以太网接口双向转发数据包。也允许非虚拟化机器参与逻辑网络。 网关可以是物理主机、虚拟机或支持 vtep(5) 架构的基于 ASIC 的硬件交换机

1. OVN 架构


                                  CMS
                                   |
                                   |
                       +-----------|-----------+
                       |           |           |
                       |     OVN/CMS Plugin    |
                       |           |           |
                       |           |           |
                       |   OVN Northbound DB   |
                       |           |           |
                       |           |           |
                       |       ovn-northd      |
                       |           |           |
                       +-----------|-----------+
                                   |
                                   |
                         +-------------------+
                         | OVN Southbound DB |
                         +-------------------+
                                   |
                                   |
                +------------------+------------------+
                |                  |                  |
  HV 1          |                  |    HV n          |
+---------------|---------------+  .  +---------------|---------------+
|               |               |  .  |               |               |
|        ovn-controller         |  .  |        ovn-controller         |
|         |          |          |  .  |         |          |          |
|         |          |          |     |         |          |          |
|  ovs-vswitchd   ovsdb-server  |     |  ovs-vswitchd   ovsdb-server  |
|                               |     |                               |
+-------------------------------+     +-------------------------------+
  •  CMS,云管理系统
  •  OVN/CMS Plugin,到 OVN 接口的组件,对于 openstack 可以是 neutron 插件,插件的主要目的是翻译 CMS 逻辑网络配置的通知为被 OVN 可以理解的中间表示,以 CMS 特定格式存储在 CMS 配置数据库
  •  OVN Northbound DB,接收从 OVN/CMS 插件传递的逻辑网络配置的中间表示。数据库模式与CMS 中的概念是“impedance matched”,因此直接支持逻辑交换机,路由器,ACL等。OVN 北向数据库只有两个客户端:在它上层的 OVN/CMS 插件和在它下面的 ovn-northd
  •  onv-northd,连接上面的 OVN 北向数据库和下层的 OVN 南向数据库,从北向数据库涉及网络相关概念的逻辑网络配置,翻译为下层南向数据库的逻辑数据流
  •  OVN Southbound DB,南向数据库是系统的中心,客户端是上层的 ovn-northd 和下层运行在每一个传输节点的 ovn-controller。南向数据库包括三类数据,物理网络表 PN 指定了怎么到达 hepervisor 和其他节点, 逻辑网络表 LN,表述了涉及逻辑数据流的逻辑网络,Binding 表连接逻辑网络组件到物理网络,hypervisor 填充 PN 和 Port_Binding 表,而 ovn-northd 填充 LN 表。

     其余组件在每个 hypervisor 上运行:

  • ovn-controller,每个 hypervisor 和软件网关上的 OVN 代理,向北连接到 OVN 南向数据库来掌握 OVN 配置和状态来填充物理网络 PN 表,依靠 hypervisor 的状态在 Binding 表填充 Chassis 列,向南作为 OpenFlow 控制器连接到 ovs-vswitched 用于控制网络通信,连接到 ovsdb-server 来允许监控和控制 Open vSwitch 配置
  • ovs-vswitchd 和 ovsdb-server 是常规的 Open vSwitch 组件

参考:

  https://www.mankier.com/7/ovn-architecture

 类似资料: