OVN¶
OVN 为 Open vSwitch (OVS) 提供开源网络虚拟化
逻辑交换机
IPv4 和 IPv6 逻辑路由器
L2/L3/L4 ACL(安全组)
多种隧道叠加(Geneve, STT 和 VXLAN)
逻辑 L4 负载均衡
基于 TOR 的 L2 逻辑-物理网关(VTEP)
基于软件的 L2/L3 逻辑-物理网关
OVN 集成组件存在于 OpenStack Neutron、Kubernetes 等中。
问题描述¶
目前没有可用的 charms,可以让你轻松部署使用 OVN 所需的服务。
这也有利于 OPNFV 的 JOID 安装程序在其部署中提供另一个场景。
提议的变更¶
实现新的响应式 charms,添加对部署 OVN 和与 OpenStack 集成的支持。
备选方案¶
无
实现¶
该实现包括以下 charms
ovn-central
主要 charm,部署
ovn-northd,OVN 中央控制守护进程,和ovsdb-server,Open vSwitch 数据库 (OVSDB)。ovn-northd守护进程负责将高级 OVN 配置转换为逻辑配置,供诸如ovn-controller之类的守护进程使用。ovn-northd进程与 OVN Northbound- 和 Southbound- 数据库通信。ovsdb-server通过ovsdb接口实现的 relations 暴露端点。该 charm 支持 OVSDB 的集群,为此需要奇数个单元。请注意,随着单元数量的增加,写入性能会降低。
支持运行多个
ovn-northd守护进程,它们将以主动/被动模式运行。守护进程使用 OVSDB 中的锁定功能自动选择单个活动实例。该 charm 必须配置 OVSDB 和其客户端之间的 TLS 传输,支持 charm 静态配置或借助
vault和tls-certificates接口。
ovn-chassis
从属 charm,部署 OVN 本地控制器和 Open vSwitch 数据库和交换机。
它通过 OVSDB 协议连接到 OVN Southbound 数据库,通过 OVSDB 协议连接到单元本地 Open vSwitch 数据库,并通过 OpenFlow 连接到单元本地 Open vSwitch 守护进程。
每个虚拟机、软件网关或其他需要 OVN 网络的单元都运行其自己独立的
ovn-controller守护进程副本。与特定软件(如 OpenStack
nova-compute和 Kubernetesworker)集成的模块应全部添加到此从属 charm 中。应在运行时通过可选 relations 的存在来确定激活哪些模块。此 charm 需要一个 LXD profile,以启用 OVN/OVS 组件的容器放置。
ovn-dedicated-chassis
需要专用软件网关的部署的主要 charm。
该 charm 将从
ovn-chassis从属代码库构建。
neutron-api-plugin-ovn
从属 charm,在
neutron-api单元上部署networking-ovn组件,并增强 Neutron 的配置以与 OVN ML2 插件一起使用。
octavia-ovn-provider
从属 charm,在
octavia单元上部署networking-ovn组件,并增强 Octavia 的配置以与 OVN 提供程序驱动程序一起使用。
该实现包括以下接口
ovsdb
促进提供程序 charm 发布 OVSDB 连接属性的接口。
促进请求者 charm 使用远程 OVSDB 的接口。
octavia-provider
促进提供程序从属 charm 发布有关 Octavia 提供程序驱动程序的信息,并触发 Octavia 服务的重启的接口。
促进 Octavia charm 添加提供程序信息并响应来自从属提供程序 charm 的重启请求的接口。
这些 charms 的实现方式应是,非 OpenStack 特定组件可以与其他软件组件(如 Charmed Distribution of Kubernetes)一起部署。
尽可能且相关地,应使用或扩展现有的接口或 charm 库以与新的 charms 一起工作。
负责人¶
- 主要负责人
fnordahl
Gerrit Topic¶
对于与此规范相关的所有补丁,请使用 Gerrit topic “ovn-charm”。
git-review -t ovn-charm
工作项¶
请参阅 实现 部分
仓库¶
charm-ovn
charm-ovn-controller
charm-ovn-dedicated-controller
charm-neutron-api-plugin-ovn
charm-octavia-ovn-provider
charm-interface-ovsdb
charm-interface-octavia-provider
文档¶
每个 charm 应该包含一个 README,其中包含有关部署 charm 的说明。
除此之外,将在部署指南中添加一个附录,其中包含有关如何使用 OVN 部署 OpenStack 的详细信息。
安全性¶
OVSDB 及其客户端之间的通信通过使用 TLS 和 PKI 进行身份验证和保护。必须使用安全的最佳实践来实现这一点。
TLS 配置应该可以通过静态配置或通过使用 vault 和 tls-certificates 接口进行自动证书配置来实现。
测试¶
编写或更改的代码将涵盖在单元测试中;将使用 Zaza 框架实现功能测试。
依赖项¶
可能需要更改
openvswitch源代码包的布局,以适应在不让该包尝试配置交换组件的情况下运行 ovsdb-server 进程。这将有助于在不需要 LXD profile 的情况下进行ovsdbcharm 的容器放置。可能需要更改
netwokring-ovn源代码包的布局,以适应 Octavia 提供程序驱动程序启用。