第 3 章 在 overcloud 上安装 OpenDaylight
本文档侧重于 OpenDaylight 安装。在部署 OpenDaylight 前,您必须确保具有正常工作的 undercloud 环境,并且 overcloud 节点连接到物理网络。
请参阅使用 Director 安装和使用指南中的 CLI 工具 安装 Undercloud 和 配置基本 Overcloud 要求,它描述了部署 undercloud 和 overcloud 所需的步骤。
在 Red Hat OpenStack 平台中安装 OpenDaylight 有几种方法。以下小节介绍了 OpenDaylight 的最有用的场景,以及如何安装它们。
3.1. 了解默认配置和自定义设置 复制链接链接已复制到粘贴板!
安装 OpenDaylight 的建议方法是使用默认环境文件 neutron-opendaylight.yaml,并将它作为参数传递给 undercloud 上的部署命令。这将部署 OpenDaylight 的默认安装。
其他 OpenDaylight 安装和配置场景基于这个安装方法。您可以通过在部署命令中提供特定的环境文件,以不同的场景部署 OpenDaylight。
3.1.1. 了解默认环境文件 复制链接链接已复制到粘贴板!
默认环境文件是 /usr/share/openstack-tripleo-heat-templates/environments/services 目录中的 neutron-opendaylight.yaml。此环境文件会启用或禁用 OpenDaylight 支持的服务。该环境文件还定义了 director 在部署期间设置的必要参数。
以下文件是一个 neutron-opendaylight.yaml 文件示例,可用于基于 Docker 的部署:
Red Hat OpenStack Platform director 使用 resource_registry 将部署的资源映射到对应的资源定义 yaml 文件。服务是您可以映射的一个资源类型。如果要禁用特定的服务,请设置值 OS::Heat::None。在默认的 文件中,启用 OpenDaylightApi 和 OpenDaylightOvs 服务,而默认的 neutron 代理被明确禁用,因为 OpenDaylight 会继承其功能。
您可以使用 heat 参数通过 director 配置部署的设置。您可以使用环境文件的 parameter_defaults 部分覆盖其默认值。
在本例中,NeutronEnableForceMetadata、NeutronMechanismDrivers 和 NeutronServicePlugins 参数设置为启用 OpenDaylight。
本指南稍后会提供其他服务及其配置选项列表。
3.1.2. 配置 OpenDaylight API 服务 复制链接链接已复制到粘贴板!
您可以更改 /usr/share/openstack-tripleo-heat-templates/puppet/services/opendaylight-api.yaml 文件中的默认值以满足您的需要。不要直接覆盖此文件中的设置。复制此文件并保留原始备份解决方案。仅修改重复项并将重复内容传递给部署命令。
后者环境文件中的参数将覆盖之前环境文件中设置的参数。确保您注意环境文件的顺序,以避免意外覆盖参数。
3.1.2.1. 可配置选项 复制链接链接已复制到粘贴板!
当您配置 OpenDaylight API 服务时,您可以设置几个参数:
|
|
用于北向通信的端口。默认值为 |
|
|
OpenDaylight 的登录用户名。默认值为 |
|
|
OpenDaylight 的登录密码。默认值为 |
|
|
启用 OpenDaylight 充当 DHCP 服务。默认值为 |
|
|
在 OpenDaylight 中引导的以逗号分隔的功能列表。默认值为 |
|
|
用于 REST 的 L7 协议。默认值为 |
|
|
定义是否管理 OpenDaylight 存储库。默认值为 |
|
|
OpenDaylight 使用的 SNAT 机制。选择 |
|
|
OpenDaylight 的日志记录机制。选择 |
|
|
OpenDaylight TLS 密钥存储的密码。默认值为 |
|
|
启用或禁用内部网络中的 TLS。您可以使用值 |
|
|
如果为内部网络中的服务启用 TLS,则必须使用 |
有关如何使用 TLS 部署的更多信息,请参阅高级 Overcloud 自定义指南。
3.1.3. 配置 OpenDaylight OVS 服务 复制链接链接已复制到粘贴板!
您可以更改 /usr/share/openstack-tripleo-heat-templates/puppet/services/opendaylight-ovs.yaml 文件中的默认值以满足您的需要。不要直接覆盖此文件中的设置。复制此文件并保留原始备份解决方案。仅修改重复项并将重复内容传递给部署命令。
后者环境文件中的参数将覆盖之前环境文件中设置的参数。确保您注意环境文件的顺序,以避免意外覆盖参数。
3.1.3.1. 配置选项 复制链接链接已复制到粘贴板!
当您配置 OpenDaylight OVS Service 时,您可以设置几个参数:
|
|
用于向 OpenDaylight 进行北向通信的端口。默认值为 |
|
|
用于 REST 访问的第 7 层协议。默认值为 |
|
|
在 OVS 连接前,验证 OpenDaylight 的 URL 已完全启动。默认值为 |
|
|
以逗号分隔的逻辑网络和物理接口之间的映射列表。VLAN 部署需要此设置。默认值为 |
|
|
OpenDaylight OVS 服务的自定义用户名。默认值为 |
|
|
OpenDaylight OVS 服务的自定义密码。默认值为 |
|
|
定义此 OVS 主机允许的租户网络类型。它们可能因主机或角色而异,以限制 nova 实例和网络调度到的主机。默认值为 |
|
|
在 OVS 中启用或禁用 DPDK。默认值为 |
|
|
创建 vhostuser 端口的 OVS 模式。在客户端模式中,虚拟机监控程序负责创建 vhostuser 套接字。在服务器模式中,OVS 会创建它们。默认值为 |
|
|
用于 vhostuser 套接字的目录。默认值为 |
|
|
启用或禁用 OVS 硬件卸载。您可以使用 |
|
|
启用或禁用内部网络中的 TLS。您可以使用值 |
|
|
如果为内部网络中的服务启用 TLS,则必须使用 |
|
|
OpenDaylight 更新级别。您可以使用值 |
|
|
vhost-user 套接字目录组。当 vhostuser 处于默认的 |
|
|
vhost-user 套接字目录用户名。当 vhostuser 处于默认的 |
3.1.4. 将 neutron 元数据服务与 OpenDaylight 搭配使用 复制链接链接已复制到粘贴板!
OpenStack 计算服务允许通过向特殊的地址 169.254.169.254 发出 web 请求来查询与它们关联的元数据。OpenStack 网络代理将此类请求代理到 nova-api,即使请求来自隔离或多个具有重叠 IP 地址的网络。
元数据服务使用 neutron L3 代理路由器来提供元数据请求或 DHCP 代理实例。使用启用了第 3 层路由插件部署 OpenDaylight 会禁用 neutron L3 代理。因此,必须将元数据配置为通过 DHCP 实例流,即使租户网络中存在路由器。这个功能在默认的环境文件 neutron-opendaylight.yaml 中启用。要禁用它,将 NeutronEnableForceMetadata 设置为 false。
虚拟机实例安装了静态主机路由,使用 DHCP 选项 121 作为 169.254.169.254/32。使用此静态路由时,对 169.254.169.254:80 的元数据请求进入 DHCP 网络命名空间中的元数据名称服务器代理。然后,命名空间代理向请求添加带有实例的 IP 的 HTTP 标头,并通过 Unix 域套接字将它连接到元数据代理。元数据代理查询 neutron 以获取与源 IP 和网络 ID 对应的实例 ID,并将它代理到 nova 元数据服务。需要额外的 HTTP 标头才能在租户之间保持隔离并允许重叠 IP 支持。
3.1.5. 了解网络配置和 NIC 模板 复制链接链接已复制到粘贴板!
在 Red Hat OpenStack Platform director 中,物理 neutron 网络数据中心默认映射到名为 br-ex 的 OVS 网桥。它通过 OpenDaylight 集成一致。如果您使用默认的 OpenDaylightProviderMappings 和计划来创建 扁平 或 VLAN _External 网络,则必须在 Compute 节点的 NIC 模板中配置 OVS br-ex 网桥。由于第 3 层插件使用分布式路由到这些节点,因此不需要在 Controller 角色 NIC 模板上配置 br-ex。
br-ex 网桥可以映射到网络隔离中的任何网络,但通常映射到外部网络,如示例中所示。
使用 DPDK 时,您必须创建另一个 OVS 网桥,通常称为 br-phy,并为它提供 ovs-dpdk-port。网桥的 IP 地址是为 VXLAN 覆盖网络隧道配置的。
在使用网络隔离时,您不需要将 IP 地址或默认路由放在 Compute 节点上的这个网桥中。
或者,您可以在不使用 br-ex 网桥的情况下配置外部网络访问。要使用此方法,您必须事先知道 overcloud Compute 节点的接口名称。例如,如果 eth3 是 Compute 节点上的第三个接口的确定性名称,那么您可以使用它为 Compute 节点在 NIC 模板中指定接口。
- type: interface name: eth3 use_dhcp: false
-
type: interface
name: eth3
use_dhcp: false