10.3. 可组合网络
如果要在不同网络上托管特定的网络流量,可以创建自定义可组合网络。director 提供启用了网络隔离的默认网络拓扑。您可以在 /usr/share/openstack-tripleo-heat-templates/network-data-samples/default-network-isolation.yaml 中找到此配置。
overcloud 默认使用以下预定义网络段集合:
- 内部 API
- 存储
- 存储管理
- 租户
- 外部
您可以使用可组合网络为各种服务添加网络。例如,如果您有一个专用于 NFS 流量的网络,您可以将其提供给多个角色。
director 支持在部署和更新阶段创建自定义网络。您可以将这些额外网络用于裸机节点、系统管理或为不同的角色创建单独的网络。您还可以使用它们为网络间路由流量的分割部署创建多组网络。
10.3.1. 添加可组合网络 复制链接链接已复制到粘贴板!
使用可组合网络为各种服务添加网络。例如,如果您有一个专用于存储备份流量的网络,您可以将网络提供给多个角色。
您可以在 /usr/share/openstack-tripleo-heat-templates/network-data-samples 目录中找到示例文件。
流程
列出可用的示例配置文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制最适合您的需要的网络配置文件示例:
cp /usr/share/openstack-tripleo-heat-templates/network-data-samples/default-network-isolation.yaml /home/stack/templates/network_data.yaml
$ cp /usr/share/openstack-tripleo-heat-templates/network-data-samples/default-network-isolation.yaml /home/stack/templates/network_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
network_data.yaml配置文件并为新网络添加一个部分:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用
network_data.yaml文件中的以下参数:name- 设置网络的名称。
vip- 启用在网络上创建虚拟 IP 地址。
name_lower-
设置名称的小写版本,director 映射到分配给
roles_data.yaml文件中的角色的对应网络。 subnets- 一个或多个子网防御。
subnet_name- 设置子网的名称。
ip_subnet- 以 CIDR 格式设置 IPv4 子网。
allocation_pools- 设置 IPv4 子网的 IP 范围。
gateway_ip- 设置网络的网关。
vlan- 设置网络的 VLAN ID。
ipv6- 将值设为 true 或 false。
ipv6_subnet- 设置 IPv6 子网。
gateway_ipv6- 设置 IPv6 网络的网关。
ipv6_allocation_pools- 设置 IPv6 子网的 IP 范围。
routes_ipv6- 设置 IPv6 网络的路由。
将您需要的网络 VIP 定义模板示例从
/usr/share/openstack-tripleo-heat-templates/network-data-samples复制到您的环境文件目录中。以下示例将vip-data-default-network-isolation.yaml复制到名为vip_data.yaml的本地环境文件:cp /usr/share/openstack-tripleo-heat-templates/network-data-samples/vip-data-default-network-isolation.yaml /home/stack/templates/vip_data.yaml
$ cp /usr/share/openstack-tripleo-heat-templates/network-data-samples/vip-data-default-network-isolation.yaml /home/stack/templates/vip_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
vip_data.yaml配置文件。虚拟 IP 数据是虚拟 IP 地址定义的列表,各自包含分配 IP 地址的网络的名称。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<vip_address> 替换为所需的虚拟 IP 地址。
您可以使用
vip_data.yaml文件中的以下参数:network- 设置 neutron 网络名称。这是唯一需要的参数。
ip_address- 设置 VIP 的 IP 地址。
子网- 设置 neutron 子网名称。在创建虚拟 IP neutron 端口时,使用 指定子网。当您的部署使用路由网络时,需要此参数。
dns_name- 设置 FQDN (完全限定域名)。
name- 设置虚拟 IP 名称。
-
将
复制示例网络配置模板。Jinja2 模板用于定义 NIC 配置模板。如果其中一个示例与您的要求匹配,请浏览
/usr/share/ansible/roles/tripleo_network_config/templates/目录中提供的示例。如果示例与您的要求不匹配,请复制示例配置文件,并根据您的需要进行修改:cp /usr/share/ansible/roles/tripleo_network_config/templates/single_nic_vlans/single_nic_vlans.j2 /home/stack/templates/
$ cp /usr/share/ansible/roles/tripleo_network_config/templates/single_nic_vlans/single_nic_vlans.j2 /home/stack/templates/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
single_nic_vlans.j2配置文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
overcloud-baremetal-deploy.yaml配置文件中设置network_config模板:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 调配 overcloud 网络。此操作会生成一个输出文件,该文件将在部署 overcloud 时使用环境文件:
openstack overcloud network provision --output <deployment_file> /home/stack/templates/<networks_definition_file>.yaml
(undercloud)$ openstack overcloud network provision --output <deployment_file> /home/stack/templates/<networks_definition_file>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<networks_definition_file> 替换为网络定义文件的名称,如network_data.yaml。 -
将
<deployment_file> 替换为要在部署命令中生成的 heat 环境文件的名称,如/home/stack/templates/overcloud-networks-deployed.yaml。
-
将
置备网络 VIP 并生成
vip-deployed-environment.yaml文件。在部署 overcloud 时,您可以使用此文件:openstack overcloud network vip provision --stack <stack> --output <deployment_file> /home/stack/templates/vip_data.yaml
(overcloud)$ openstack overcloud network vip provision --stack <stack> --output <deployment_file> /home/stack/templates/vip_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 &
lt;stack> 替换为置备网络 VIP 的堆栈的名称。如果未指定,则默认为 overcloud。 -
将
<deployment_file> 替换为要在部署命令中生成的 heat 环境文件的名称,如/home/stack/templates/overcloud-vip-deployed.yaml。
-
将 &
10.3.2. 在角色中包含可组合网络 复制链接链接已复制到粘贴板!
您可以将可组合网络分配给环境中定义的 overcloud 角色。例如,您可以包括带有 Ceph Storage 节点的自定义 StorageBackup 网络。
流程
如果您还没有自定义
roles_data.yaml文件,请将默认值复制到您的主目录中:cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yaml
$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
编辑自定义
roles_data.yaml文件。 将网络名称包括在您要向其添加
网络的角色的 network 列表中。例如,要将StorageBackup网络添加到 Ceph Storage 角色中,请使用以下示例片断:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将自定义网络添加到其各自角色后,保存文件。
运行 openstack overcloud deploy 命令时,请使用 -r 选项包含自定义 roles_data.yaml 文件。如果没有使用 -r 选项,部署命令将默认的角色集合与相应的分配网络一起使用。
10.3.3. 为可组合网络分配 OpenStack 服务 复制链接链接已复制到粘贴板!
每个 OpenStack 服务都分配到资源注册表中的默认网络类型。这些服务绑定到网络分配的网络中的 IP 地址。虽然 OpenStack 服务划分到这些网络,但实际物理网络的数量可能会有所不同,如网络环境文件中定义的不同。您可以通过在环境文件中定义新的网络映射(如 /home/stack/templates/service-reassignments.yaml ),将 OpenStack 服务重新分配给不同的网络类型。ServiceNetMap 参数决定了您要用于每个服务的网络类型。
例如,您可以通过修改突出显示的部分将存储管理网络服务重新分配给存储备份网络:
parameter_defaults:
ServiceNetMap:
SwiftStorageNetwork: storage_backup
CephClusterNetwork: storage_backup
parameter_defaults:
ServiceNetMap:
SwiftStorageNetwork: storage_backup
CephClusterNetwork: storage_backup
更改这些参数到 storage_backup,会将这些服务放置在 Storage Backup 网络中,而不是 Storage Management 网络。这意味着,您必须只为 Storage Backup 网络而不是 Storage Management 网络定义一组 parameter_defaults。
director 将自定义 ServiceNetMap 参数定义合并到从 ServiceNetMapDefaults 获取的预定义默认值列表中,并覆盖默认值。director 返回完整列表,包括自定义到 ServiceNetMap,后者用于为各种服务配置网络分配。
对于使用 Pacemaker 的节点,服务映射适用于 network_data.yaml 文件中使用 vip: true 的网络。overcloud 负载均衡器将来自 VIP 的流量重定向到特定的服务端点。
您可以在 /usr/share/openstack-tripleo-heat-templates/network/service_net_map.j2.yaml 文件的 ServiceNetMapDefaults 参数中找到默认服务的完整列表。
10.3.4. 启用自定义可组合网络 复制链接链接已复制到粘贴板!
使用其中一个默认 NIC 模板启用自定义可组合网络。在本例中,使用带有 VLAN 模板的 Single NIC (custom_single_nic_vlans)。
流程
查找 stackrc undercloud 凭证文件:
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 置备 overcloud 网络:
openstack overcloud network provision \ --output overcloud-networks-deployed.yaml \ custom_network_data.yaml
$ openstack overcloud network provision \ --output overcloud-networks-deployed.yaml \ custom_network_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 置备网络 VIP:
openstack overcloud network vip provision \ --stack overcloud \ --output overcloud-networks-vips-deployed.yaml \ custom_vip_data.yaml$ openstack overcloud network vip provision \ --stack overcloud \ --output overcloud-networks-vips-deployed.yaml \ custom_vip_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 置备 overcloud 节点:
openstack overcloud node provision \ --stack overcloud \ --output overcloud-baremetal-deployed.yaml \ overcloud-baremetal-deploy.yaml$ openstack overcloud node provision \ --stack overcloud \ --output overcloud-baremetal-deployed.yaml \ overcloud-baremetal-deploy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 构建
openstack overcloud deploy命令,按所需顺序指定配置文件和模板,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
本例命令在 overcloud 中的节点之间部署可组合网络,包括额外的自定义网络。
10.3.5. 重命名默认网络 复制链接链接已复制到粘贴板!
您可以使用 network_data.yaml 文件修改默认网络的用户可见名称:
- InternalApi
- 外部
- 存储
- StorageMgmt
- 租户
要更改这些名称,请不要修改 name 字段。相反,将 name_lower 字段更改为网络的新名称,并使用新名称更新 ServiceNetMap。
流程
在
network_data.yaml文件中,为您要重命名的每个网络的name_lower参数输入新名称:- name: InternalApi name_lower: MyCustomInternalApi
- name: InternalApi name_lower: MyCustomInternalApiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
service_net_map_replace参数中包括name_lower参数的默认值:- name: InternalApi name_lower: MyCustomInternalApi service_net_map_replace: internal_api
- name: InternalApi name_lower: MyCustomInternalApi service_net_map_replace: internal_apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow