4.11. 向 spine-leaf 部署中添加一个新的 leaf
在增加网络容量或添加新的物理站点时,您可能需要向 Red Hat OpenStack Platform (RHOSP) spine-leaf 网络添加新的叶。
先决条件
- 您的 RHOSP 部署使用 spine-leaf 网络拓扑。
流程
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:$ source ~/stackrc
打开您的网络定义模板,例如
/home/stack/templates/spine-leaf-networks-data.yaml
。在适当的基本网络中,添加一个叶子网作为您要添加的新叶的可组合网络项。示例
在本例中,添加了新的 leaf (
leaf3
)的子网条目:- name: InternalApi name_lower: internal_api vip: true vlan: 10 ip_subnet: '172.18.0.0/24' allocation_pools: [{'start': '172.18.0.4', 'end': '172.18.0.250'}] gateway_ip: '172.18.0.1' subnets: internal_api_leaf1: vlan: 11 ip_subnet: '172.18.1.0/24' allocation_pools: [{'start': '172.18.1.4', 'end': '172.18.1.250'}] gateway_ip: '172.18.1.1' internal_api_leaf2: vlan: 12 ip_subnet: '172.18.2.0/24' allocation_pools: [{'start': '172.18.2.4', 'end': '172.18.2.250'}] gateway_ip: '172.18.2.1' internal_api_leaf3: vlan: 13 ip_subnet: '172.18.3.0/24' allocation_pools: [{'start': '172.18.3.4', 'end': '172.18.3.250'}] gateway_ip: '172.18.3.1'
为您要添加的新 leaf 创建一个角色数据文件。
为您要添加的新叶叶复制 leaf Compute 和 leaf Ceph Storage 文件。
示例
在本例中,
Compute1.yaml
和CephStorage1.yaml
分别被复制用于新的 leaf,Compute3.yaml
和CephStorage3.yaml
:$ cp ~/roles/Compute1.yaml ~/roles/Compute3.yaml $ cp ~/roles/CephStorage1.yaml ~/roles/CephStorage3.yaml
编辑新 leaf 文件中的
name
和HostnameFormatDefault
参数,以便它们与对应的 leaf 参数保持一致。示例
例如,Leaf 1 Compute 文件中的参数具有以下值:
- name: ComputeLeaf1 HostnameFormatDefault: '%stackname%-compute-leaf1-%index%'
示例
Leaf 1 Ceph Storage 参数具有以下值:
- name: CephStorageLeaf1 HostnameFormatDefault: '%stackname%-cephstorage-leaf1-%index%'
编辑新 leaf 文件中的 network 参数,以便它们与相应的 Leaf 网络参数保持一致。
示例
例如,Leaf 1 Compute 文件中的参数具有以下值:
- name: ComputeLeaf1 networks: InternalApi: subnet: internal_api_leaf1 Tenant: subnet: tenant_leaf1 Storage: subnet: storage_leaf1
示例
Leaf 1 Ceph Storage 参数具有以下值:
- name: CephStorageLeaf1 networks: Storage: subnet: storage_leaf1 StorageMgmt: subnet: storage_mgmt_leaf1
角色配置完成后,运行以下命令来生成完整的角色数据文件。在您的网络中包含所有叶叶以及您要添加的新叶叶。
示例
在本例中,leaf3 添加到 leaf0, leaf1, 和 leaf2 中:
$ openstack overcloud roles generate --roles-path ~/roles -o roles_data_spine_leaf.yaml Controller Controller1 Controller2 Compute Compute1 Compute2 Compute3 CephStorage CephStorage1 CephStorage2 CephStorage3
这会创建一个完整的
roles_data_spine_leaf.yaml
文件,其中包含每个对应叶网络的所有自定义角色。
为要添加的叶创建一个自定义 NIC 配置。
为您要添加的新叶型复制 leaf Compute 和 leaf Ceph Storage NIC 配置文件。
示例
在本例中,
computeleaf1.yaml
和ceph-storageleaf1.yaml
会分别复制到新的 leaf,computeleaf3.yaml
和ceph-storageleaf3.yaml
:$ cp ~/templates/spine-leaf-nics/computeleaf1.yaml ~/templates/spine-leaf-nics/computeleaf3.yaml $ cp ~/templates/spine-leaf-nics/ceph-storageleaf1.yaml ~/templates/spine-leaf-nics/ceph-storageleaf3.yaml
打开自定义环境文件,其中包含每个角色的角色和自定义 NIC 模板映射,例如 spine-leaf-nic-roles-map.yaml。为您要添加的新 leaf 的每个角色插入一个条目。
parameter_defaults: %%ROLE%%NetworkConfigTemplate: <path_to_ansible_jinja2_nic_config_file>
示例
在本例中,添加了
ComputeLeaf3NetworkConfigTemplate
和CephStorage3NetworkConfigTemplate
条目:parameter_defaults: Controller0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' Controller1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' Controller2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf3NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage3NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
打开自定义网络环境文件,其中包含单独的网络映射,并设置 overcloud 的 control plane 网络的访问权限,如
spine-leaf-ctlplane.yaml
并更新 control plane 参数。在
parameter_defaults
部分下,为新 leaf 网络添加 control plane 子网映射。此外,也包含新叶网络的外部网络映射。对于扁平网络映射,列出
NeutronFlatNetworks
参数中的新 leaf (leaf3
),并为新的叶设置NeutronBridgeMappings
参数:parameter_defaults: NeutronFlatNetworks: leaf0,leaf1,leaf2,leaf3 Controller0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute1Parameters: NeutronBridgeMappings: "leaf1:br-ex" Compute2Parameters: NeutronBridgeMappings: "leaf2:br-ex" Compute3Parameters: NeutronBridgeMappings: "leaf3:br-ex"
对于 VLAN 网络映射,还要将
NeutronNetworkVLANRanges
设置为映射新叶(leaf3
)网络的 VLAN:NeutronNetworkType: 'geneve,vlan' NeutronNetworkVLANRanges: 'leaf0:1:1000,leaf1:1:1000,leaf2:1:1000,leaf3:1:1000'
示例
在本例中,使用了扁平网络映射,并且添加了新的叶(
leaf3
)条目:parameter_defaults: NeutronFlatNetworks: leaf0,leaf1,leaf2,leaf3 Controller0Parameters: NeutronBridgeMappings: "leaf0:br-ex" ControllerControlPlaneSubnet: leaf0 Controller1Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller1ControlPlaneSubnet: leaf0 Controller2Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller2ControlPlaneSubnet: leaf0 Compute0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute0ControlPlaneSubnet: leaf0 Compute1Parameters: NeutronBridgeMappings: "leaf1:br-ex" Compute1ControlPlaneSubnet: leaf1 Compute2Parameters: NeutronBridgeMappings: "leaf2:br-ex" Compute2ControlPlaneSubnet: leaf2 Compute3Parameters: NeutronBridgeMappings: "leaf3:br-ex" Compute3ControlPlaneSubnet: leaf3
置备您修改的网络。
如需更多信息,请参阅置备 overcloud 网络和 overcloud VIP。
在之前创建的裸机节点定义文件中,例如
spine-leaf-baremetal-nodes.yaml
,请确保network_config_update
变量设为true
。示例
- name: Controller count: 3 defaults: networks: - network: ctlplane vif: true - network: external subnet: external_subnet - network: internal_api subnet: internal_api_subnet01 - network: storage subnet: storage_subnet01 - network: storage_mgmt subnet: storage_mgmt_subnet01 - network: tenant subnet: tenant_subnet01 network_config: template: /home/stack/templates/spine-leaf-nics/single-nic-vlans.j2 default_route_network: - external network_config_update: true
置备修改后的节点。
如需更多信息,请参阅 置备裸机节点。
- 按照 部署 spine-leaf enabled overcloud 中的步骤重新部署您的 spine-leaf enabled overcloud。