4.3. 配置扁平提供商网络

您可以使用扁平提供商网络将实例直接连接到外部网络。如果您有多个物理网络和单独的物理接口,并且计划将每个计算和网络节点连接到这些外部网络,这将非常有用。

先决条件

  • 您有一个多个物理网络。

    这个示例分别使用名为 physnet1physnet2 的物理网络。

  • 您有单独的物理接口。

    这个示例分别使用单独的物理接口 eth0eth1

流程

  1. 在 undercloud 主机上,以 stack 用户身份登录,创建一个自定义 YAML 环境文件。

    示例

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

    提示

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

  2. parameter_defaults 下的 YAML 环境文件中,使用 NeutronBridgeMappings 来指定用于访问外部网络的 OVS 网桥。

    示例

    parameter_defaults:
      NeutronBridgeMappings: 'physnet1:br-net1,physnet2:br-net2'

  3. 在 Controller 和 Compute 节点的自定义 NIC 配置模板中,使用附加接口来配置网桥。

    示例

    ...
                  - type: ovs_bridge
                    name: br-net1
                    mtu: 1500
                    use_dhcp: false
                    members:
                    - type: interface
                      name: eth0
                      mtu: 1500
                      use_dhcp: false
                      primary: true
                  - type: ovs_bridge
                    name: br-net2
                    mtu: 1500
                    use_dhcp: false
                    members:
                    - type: interface
                      name: eth1
                      mtu: 1500
                      use_dhcp: false
                      primary: true
    ...

  4. 运行 openstack overcloud deploy 命令,并包含模板和环境文件,包括修改的自定义 NIC 模板和新的环境文件。

    重要

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

    示例

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

验证

  1. 创建一个外部网络 (public1) 作为扁平网络,并将它与配置的物理网络 (physnet1) 关联。

    将其配置为共享网络(使用 --share),以便其他用户创建直接连接到外部网络的虚拟机实例。

    示例

    # openstack network create --share --provider-network-type flat --provider-physical-network physnet1 --external public01

  2. 使用 openstack subnet create 命令创建子网 (public_subnet)。

    示例

    # openstack subnet create --no-dhcp --allocation-pool start=192.168.100.20,end=192.168.100.100 --gateway 192.168.100.1 --network public01 public_subnet

  3. 创建虚拟机实例,并将其直接连接到新创建的外部网络。

    示例

    $ openstack server create --image rhel --flavor my_flavor --network public01 my_instance

其他资源