9.2. 添加可组合网络
使用可组合网络为各种服务添加网络。例如,如果您有一个专用于存储备份流量的网络,您可以将网络呈现到多个角色。
流程
复制默认的
network_data.yaml
文件:cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/.
$ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
network_data.yaml
文件的本地副本,并为新网络添加一个部分:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以在
network_data.yaml
文件中使用以下参数:name
-
设置网络的人类可读名称。这个参数是唯一强制参数。您还可以使用
name_lower
来规范化名称以实现可读性。例如,将InternalApi
更改为internal_api
。 name_lower
-
设置名称的小写版本,director 映射到分配给
roles_data.yaml
文件中角色的相应网络。 vlan
- 设置要用于此网络的 VLAN。
vip: true
-
在新网络上创建虚拟 IP 地址(VIP)。此 IP 用作 service-to-network 映射参数(
ServiceNetMap
)中列出的服务的目标 IP。请注意,VIP 仅由使用 Pacemaker 的角色使用。overcloud 负载均衡服务将来自这些 IP 的流量重定向到对应的服务端点。 ip_subnet
- 以 CIDR 格式设置默认 IPv4 子网。
allocation_pools
- 为 IPv4 子网设置 IP 范围
gateway_ip
- 设置网络的网关。
Routes
向网络添加额外的路由。使用包含每个额外路由的 JSON 列表。每个列表项目包含一个字典值映射。使用以下示例语法:
routes: [{'destination':'10.0.0.0/16', 'nexthop':'10.0.2.254'}]
routes: [{'destination':'10.0.0.0/16', 'nexthop':'10.0.2.254'}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow subnets
创建属于此网络中的其他路由子网。此参数接受一个字典值,其中包含路由子网的小写名称作为键,以及
vlan
、ip_subnet
、allocation_pools
,以及gateway_ip
参数作为映射到子网的值。以下示例演示了这个布局:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此映射在 spine leaf 部署中很常见。如需更多信息,请参阅 Spine Leaf Networking 指南。
当您添加包含虚拟 IP 的额外可组合网络并希望将一些 API 服务映射到此网络时,请使用
CloudName{network.name}
定义来为 API 端点设置 DNS 名称:CloudName{{network.name}}
CloudName{{network.name}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下面是一个示例:
parameter_defaults: ... CloudNameOcProvisioning: baremetal-vip.example.com
parameter_defaults: ... CloudNameOcProvisioning: baremetal-vip.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
-n
选项,在部署命令中包含自定义network_data.yaml
文件。如果没有-n
选项,部署命令会使用默认的网络集合。 如果您需要可预测的虚拟 IP 地址(VIP),请将自定义网络的
VirtualFixedIPs
参数添加到 heat 环境文件的parameter_defaults
部分,例如my_network_vips.yaml
:<% my_customer_network %>VirtualFixedIPs: [{'ip_address':'<% ipaddres %>'}]
<% my_customer_network %>VirtualFixedIPs: [{'ip_address':'<% ipaddres %>'}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下面是一个示例:
parameter_defaults: ... # Predictable VIPs StorageBackuptVirtualFixedIPs: [{'ip_address':'172.21.1.9'}]
parameter_defaults: ... # Predictable VIPs StorageBackuptVirtualFixedIPs: [{'ip_address':'172.21.1.9'}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
-e
选项,将 heat 环境文件my_network_vips.yaml
包含在部署命令中。