第 17 章 使用路由器类别创建自定义虚拟路由器
本节中的内容 作为技术预览提供,因此不受红帽完全支持。它只应用于测试,不应部署在生产环境中。如需更多信息,请参阅 技术预览。
您可以使用路由器类别在 Red Hat OpenStack Platform (RHOSP) ML2/OVN 环境中部署自定义虚拟路由器。在 RHOSP 管理员启用路由器类别功能并创建路由器类别后,用户可以使用路由器类别创建自定义路由器。
在 RHOSP 部署中,您可以将基于路由器类别的虚拟自定义路由器与默认 OVN 类型的路由器合并。
使用路由器类别不会影响默认 OVN 路由器的操作。使用路由器类别时,默认的 OVN 路由器被视为默认路由器类别,不会影响其配置或操作。
要设置路由器类别并创建自定义路由器,请执行以下步骤:
管理员加载所需的 RHOSP Networking 服务(neutron)插件并指定服务供应商。
管理员创建路由器类别。
请参阅 第 17.2 节 “创建路由器类型”。
用户使用其中一个路由器类别创建自定义路由器。
17.1. 启用路由器类别并创建服务提供商
在 Red Hat OpenStack Platform (RHOSP)管理员可以创建路由器类别前,管理员必须首先加载必要的 RHOSP Networking 服务(neutron)插件并指定服务供应商。
管理员必须在网络服务目录中的模块中部署服务提供商代码。红帽建议 neutron.services.ovn_l3.service_providers.user_defined
模块。
您可以在 neutron.services.ovn_l3.service_providers.user_defined
模块中找到名为 UserDefined
的示例服务提供商。
以下流程涉及直接编辑 Controller 节点上的 .conf
文件。红帽正在开发 heat 模板方法和 OpenStack 命令,以取代此直接编辑方法。
先决条件
- 您的网络服务机制驱动程序必须是 ML2/OVN。
- 您已为部署创建了路由器类别服务供应商。
- 您可以访问 RHOSP Controller 节点并更新配置文件的权限。
流程
-
在其中一个 Controller 节点上,打开文件
/var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron.conf
。 在
service_plugins
列表中,将ovn-routers
更改为ovn-router-flavors-ha
:[DEFAULT] service_plugins = qos,ovn-router-flavors-ha,trunk,segments,port_forwarding,log
创建
service_providers
部分,并为计划使用的每个路由器类型添加服务提供商定义。示例
在本例中,添加了服务供应商
user_defined_1
:... [service_providers] service_provider = L3_ROUTER_NAT:user_defined_1:neutron.services.ovn_l3.service_providers.user_defined.UserDefined1
路由器类别服务提供商定义具有以下元素:
- 服务供应商常数
- L3_ROUTER_NAT
- Name
服务提供商的名称,它是两个冒号字符之间的描述性字符串。
例如,
:user_defined_1:
。名称在环境中必须是唯一的。- 路径
-
红帽建议使用此路径:
neutron.services.ovn_l3.service_providers.user_defined
- 类
服务提供商的 python 类名称。
每个提供程序都有自己的类。例如,
UserDefined1
。注意保留此类名称及其路径。您稍后创建路由器类别时需要它。
重启 Networking 服务(neutron):
$ sudo podman restart neutron_api
- 在剩余的 RHOSP Controller 节点上执行这些步骤 1 - 4。
验证
验证 Networking 服务是否已载入您的用户定义的服务提供商:
$ openstack network service provider list
如果流程成功,新服务会出现在列表中。
输出示例
+-------------------------+-------+---------+ | Service Type | Name | Default | +---------------+-----------------+---------+ | L3_ROUTER_NAT | user_defined_1 | False | | L3_ROUTER_NAT | ovn | True | +---------------+-----------------+---------+