23.3. 使用 ML2/OVN 配置网络服务可用域

您可以在用户创建路由器时设置由 Red Hat OpenStack Platform (RHOSP)网络服务(neutron)自动分配的一个或多个默认可用区(AZ)。另外,您还可以设置网络服务用来为对应 AZ 调度这些资源的路由器驱动程序。

本主题中包含的信息是用于运行带有 Open Virtual Network (ML2/OVN)机制驱动程序的 Modular Layer 2 插件的部署。

注意

ML2/OVN 机制驱动程序只支持路由器可用区。ML2/OVN 有一个分布式 DHCP 服务器,因此支持网络 AZ 是不必要的。

先决条件

  • 已部署 RHOSP 16.2 或更高版本。
  • 运行使用 ML2/OVN 机制驱动程序的 RHOSP 网络服务。
  • 在分布式计算节点(DCN)环境中使用网络服务 AZ 时,您必须将网络服务 AZ 名称与计算服务(nova) AZ 名称匹配。

    如需更多信息 ,请参阅部署分布式计算节点架构指南

    重要

    通过设置 OVNCMSOptions: 'enable-chassis-as-gw',并通过为 OVNAvailabilityZone 参数提供一个或多个 AZ 值来确保所有路由器网关端口驻留在 OpenStack Controller 节点上。执行此操作可防止路由器将所有机箱调度到路由器网关端口的潜在主机。

流程

  1. 以 stack 用户身份登录 undercloud,再提供 stackrc 文件,以启用 director 命令行工具。

    示例

    $ source ~/stackrc

  2. 创建自定义 YAML 环境文件。

    示例

    $ vi /home/stack/templates/my-neutron-environment.yaml

    提示

    Red Hat OpenStack Platform Orchestration 服务(heat)使 用一组名为 template 的计划来安装和配置您的环境。您可以使用自定义环境文件 自定义 overcloud 的各个方面,它是为 heat 模板 提供自定义 的特殊模板类型。

  3. 在 YAML 环境文件的 parameter_defaults 下,输入 NeutronDefaultAvailabilityZones 参数,以及一个或多个 AZ。

    重要

    在 DCN 环境中,您必须将网络服务 AZ 名称与 Compute 服务 AZ 名称匹配。

    如果用户无法在创建网络或路由器时通过 --availability-zone-hint 选项指定带有 --availability-zone-hint 选项的 AZ,则网络服务会分配这些 AZ。

    示例

    parameter_defaults:
      NeutronDefaultAvailabilityZones: 'az-central,az-datacenter2,az-datacenter1'

  4. 通过输入参数 OVNAvailabilityZone 的值来确定网关节点的 AZ (Controller 和 Network 节点)。

    重要

    OVNAvailabilityZone 参数替换 OVNCMSOptions 参数中使用 AZ 值。如果使用 OVNAvailabilityZone 参数,请确保 OVNCMSOptions 参数中没有 AZ 值。

    示例

    在本例中,为 az-central AZ 预定义了角色 Controllers,为 datacenter1datacenter2 AZ 预定义了角色 Networkers:

    parameter_defaults:
      NeutronDefaultAvailabilityZones: 'az-central,az-datacenter2,az-datacenter1'
      ControllerCentralParameters:
        OVNCMSOptions: 'enable-chassis-as-gw'
        OVNAvailabilityZone: 'az-central,az-datacenter2,az-datacenter1'
      NetworkerDatacenter1Parameters:
        OVNCMSOptions: 'enable-chassis-as-gw'
        OVNAvailabilityZone: 'az-datacenter1'
      NetworkerDatacenter2Parameters:
        OVNCMSOptions: 'enable-chassis-as-gw'
        OVNAvailabilityZone: 'az-datacenter2'
    重要

    在 DCN 环境中,为 ControllerCentralParameter 定义单个 AZ,以便在与特定边缘站点相关的 AZ 中调度端口。

  5. 默认情况下,路由器调度程序是 AZLeastRoutersScheduler。如果要更改此功能,请输入带有 NeutronRouterSchedulerDriver 参数的新调度程序。

    示例

    parameter_defaults:
      NeutronDefaultAvailabilityZones: 'az-central,az-datacenter2,az-datacenter1'
      ControllerCentralParameters:
        OVNCMSOptions: 'enable-chassis-as-gw'
        OVNAvailabilityZone: 'az-central,az-datacenter2,az-datacenter1'
      NetworkerDCN1Parameters:
        OVNCMSOptions: 'enable-chassis-as-gw'
        OVNAvailabilityZone: 'az-datacenter1'
      NetworkerDCN2Parameters:
        OVNCMSOptions: 'enable-chassis-as-gw'
        OVNAvailabilityZone: 'az-datacenter2'
      NeutronRouterSchedulerDriver: 'neutron.scheduler.l3_agent_scheduler.AZLeastRoutersScheduler'

  6. 运行 openstack overcloud deploy 命令,并包含核心 heat 模板、环境文件以及新的自定义环境文件。

    重要

    但是,环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。

    示例

    $ openstack overcloud deploy --templates \
    -e <your-environment-files> \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/\
    my-neutron-environment.yaml

验证

  • 运行 availability zone list 命令来确认可用区已正确定义。

    示例

    $ openstack availability zone list

    输出示例

    +----------------+-------------+
    | Zone Name      | Zone Status |
    +----------------+-------------+
    | az-central     | available   |
    | az-datacenter1 | available   |
    | az-datacenter2 | available   |
    +----------------+-------------+