7.2. 创建网络环境文件
网络环境文件是描述 Overcloud 网络环境的 Heat 环境文件,并指向上一节中的网络接口配置模板。您可以为网络定义子网和 VLAN 以及 IP 地址范围。然后您可以为本地环境自定义这些值。
director 包含一组示例环境文件,供您启动。每个环境文件对应于 /usr/share/openstack-tripleo-heat-templates/network/config/
中的 example 网络接口文件:
-
/usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-
NIC 的带有 VLAN 配置的环境文件。用于禁用外部网络(vlans.yaml
- 单一net-single-nic-with-vlans-no-external.yaml
)的环境文件或启用 IPv6 (net-single-nic-with-vlans-v6.yaml
)。 -
/usr/share/openstack-tripleo-heat-templates/environments/net-bond-with-vlans.yaml
-bond-with-vlans
网络接口目录中绑定 NIC 配置的示例环境文件。用于禁用外部网络(net-bond-with-vlans-no-external.yaml
)的环境文件或启用 IPv6 (net-bond-with-vlans-v6.yaml
)。 -
/usr/share/openstack-tripleo-heat-templates/environments/net-
- 多个 NIC 配置的示例环境文件。也提供用于启用 IPv6 的环境文件(multiple-nics
.yamlnet-multiple-nics-v6.yaml
)。 -
/usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-linux-bridge-with-vlans.yaml
- 使用 Linux 网桥而不是 Open vSwitch 配置的单一 NIC 的示例环境文件,它使用single-nic-linux-bridge-vlans
网络接口目录。
此场景使用 /usr/share/openstack-tripleo-heat-templates/environments/net-bond-with-vlans.yaml
文件的修改版本。将这个文件复制到 stack 用户的 templates
目录中。
$ cp /usr/share/openstack-tripleo-heat-templates/environments/net-bond-with-vlans.yaml /home/stack/templates/network-environment.yaml
环境文件包含以下修改的部分:
resource_registry: OS::TripleO::BlockStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/cinder-storage.yaml OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/nic-configs/compute.yaml OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/templates/nic-configs/controller.yaml OS::TripleO::ObjectStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/swift-storage.yaml OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/ceph-storage.yaml parameter_defaults: InternalApiNetCidr: 172.16.0.0/24 TenantNetCidr: 172.17.0.0/24 StorageNetCidr: 172.18.0.0/24 StorageMgmtNetCidr: 172.19.0.0/24 ManagementNetCidr: 172.20.0.0/24 ExternalNetCidr: 10.1.1.0/24 InternalApiAllocationPools: [{'start': '172.16.0.10', 'end': '172.16.0.200'}] TenantAllocationPools: [{'start': '172.17.0.10', 'end': '172.17.0.200'}] StorageAllocationPools: [{'start': '172.18.0.10', 'end': '172.18.0.200'}] StorageMgmtAllocationPools: [{'start': '172.19.0.10', 'end': '172.19.0.200'}] ManagementAllocationPools: [{'start': '172.20.0.10', 'end': '172.20.0.200'}] # Leave room for floating IPs in the External allocation pool ExternalAllocationPools: [{'start': '10.1.1.10', 'end': '10.1.1.50'}] # Set to the router gateway on the external network ExternalInterfaceDefaultRoute: 10.1.1.1 # Gateway router for the provisioning network (or Undercloud IP) ControlPlaneDefaultRoute: 192.0.2.254 # The IP address of the EC2 metadata server. Generally the IP of the Undercloud EC2MetadataIp: 192.0.2.1 # Define the DNS servers (maximum 2) for the overcloud nodes DnsServers: ["8.8.8.8","8.8.4.4"] InternalApiNetworkVlanID: 201 StorageNetworkVlanID: 202 StorageMgmtNetworkVlanID: 203 TenantNetworkVlanID: 204 ManagementNetworkVlanID: 205 ExternalNetworkVlanID: 100 NeutronExternalNetworkBridge: "''" # Customize bonding options if required BondInterfaceOvsOptions: "bond_mode=balance-slb"
resource_registry
部分包含每个节点的角色的修改链接到自定义网络接口模板的链接。另外,使用以下格式为自定义角色包含到网络接口模板的链接:
-
OS::TripleO::[ROLE]::Net::SoftwareConfig: [FILE]
将 [ROLE]
替换为角色名称,将 [FILE]
替换为网络接口模板位置。
parameter_defaults
部分包含参数列表,它们为每个网络类型定义网络选项。有关这些选项的完整参考,请参阅 附录 A, 网络环境选项。
此场景定义每个网络的选项。所有网络类型都使用单独的 VLAN 和子网,用于将 IP 地址分配到主机和虚拟 IP。在上例中,内部 API 网络的分配池从 172.16.0.10 开始,并继续使用 VLAN 201 的 172.16.0.200。这会造成从 172.16.0.10 开始分配的静态和虚拟 IP,并在您的环境中使用 VLAN 201 时最多生成 172.16.0.200。
External 网络托管 Horizon 控制面板和公共 API。如果将外部网络用于云管理和浮动 IP,请确保有 IP 池空间,用作虚拟机实例的浮动 IP。在本例中,您只有 10.1.1.10 到 10.1.1.50 的 IP 地址分配给外部网络,这会使 IP 地址从 10.1.1.51 中保留下来,并且上面的 IP 地址可用于浮动 IP 地址。或者,将浮动 IP 网络放在单独的 VLAN 上,并在创建后配置 Overcloud 以使用它。
BondInterfaceOvsOptions
选项使用 nic2
和 nic3
为绑定接口提供选项。有关绑定选项的详情请参考 附录 D, 绑定选项。
在创建 Overcloud 后更改网络配置可能会导致配置问题,因为资源的可用性。例如,如果用户在网络隔离模板中更改了网络的子网范围,则重新配置可能会失败,因为子网已经在使用中。