第 10 章 部署多个 overcloud
该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
您可以使用一个 undercloud 节点部署并管理多个 overcloud。每个 overcloud 都是唯一的 heat 栈,不共享堆栈资源。如果环境中 undercloud 和 overcloud 的比率为 1:1 时会造成无法管理的 overclound 数量时,可以使用该方法。例如,Edge、多站点和多产品环境。
多个 overcloud 部署中的 overcloud 环境是完全独立的,您可以使用 source
命令在环境之间进行切换。每个 overcloud 都有一个唯一的凭据文件,它由部署过程创建。要与 overcloud 交互,您必须提供适当的凭据文件。
如果将裸机置备服务(ironic)用于裸机置备,则所有 overcloud 必须位于同一置备网络中。如果无法使用同一置备网络,则可使用部署的服务器方法使用路由的网络部署多个 overcloud。在这种情况下,您必须确保 HostnameMap
参数中的值与每个 overcloud 的堆栈名称匹配。
要在单个 undercloud 上部署多个 overcloud,您必须执行以下任务:
- 部署 undercloud。如需更多信息,请参阅 section I. Director 安装和配置。
- 部署第一个 overcloud。如需更多信息,请参阅 合作伙伴 II。基本的 overcloud 部署。
-
通过为新 overcloud 创建新的环境文件,并在部署命令中指定核心 heat 模板以及新的配置文件和新堆栈
名称来
部署额外的 overcloud。
10.1. 部署额外 overcloud
您可以在单个 undercloud 上部署多个 overcloud。以下流程演示了如何在现有 overcloud ( overcloud-one
)的现有 Red Hat OpenStack Platform (RHOSP)部署中创建和部署新的 overcloud-two
。
先决条件
- undercloud。
- 一个或多个 overcloud。
- 可用于额外 overcloud 的节点。
- 为额外 overcloud 自定义网络,使得每个 overcloud 在生成的堆栈中都有唯一的网络。
步骤
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:$ source ~/stackrc
为您想部署的额外 overcloud 创建新目录:
(undercloud)$ mkdir ~/overcloud-two
将
network_data.yaml
文件从现有 overcloud 复制到额外 overcloud 的新目录中:(undercloud)$ cp network_data.yaml ~/overcloud-two/network_data.yaml
打开
~/overcloud-two/network_data.yaml
文件,并将name_lower
更新至额外 overcloud 网络的唯一名称:- name: InternalApi name_lower: internal_api_cloud_2 ...
添加
service_net_map_replace
(如果不存在),并将值设为额外 overcloud 网络的默认值:- name: InternalApi name_lower: internal_api_cloud_2 service_net_map_replace: internal_api
指定额外 overcloud 上每个子网的 VLAN ID:
- name: InternalApi ... vip: true vlan: 21 ip_subnet: '172.21.0.0/24' allocation_pools: [{'start': '172.21.0.4', 'end': '172.21.0.250'}] ipv6_subnet: 'fd00:fd00:fd00:2001::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2001::10', 'end': 'fd00:fd00:fd00:2001:ffff:ffff:ffff:fffe'}] mtu: 1500 - name: Storage ...
指定
overcloud-two
外部网络网关的 IP 地址:- name: External ... gateway_ip: <ip_address> ...
-
将
<ip_address
> 替换为overcloud-two
外部网络网关的 IP 地址,例如10.0.10.1
。
-
将
-
为额外 overcloud 创建网络配置文件,该文件会覆盖
/usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml
文件中提供的默认隔离网络配置,如network_overrides.yaml
。 打开
~/overcloud-two/network_overrides.yaml
文件,并添加overcloud-two
DNS 服务器的 IP 地址:parameter_defaults: ... DnsServers: - <ip_address> ...
-
将
<ip_address
> 替换为overcloud-two
DNS 服务器的 IP 地址,例如10.0.10.2
。
-
将
如果您的部署使用可预测的 IP 地址,请在新的网络 IP 地址映射文件
ips-from-pool-
IP 地址:overcloud-two
.yaml 中为 overcloud-two 节点配置parameter_defaults: ControllerIPs: ... internal_api_cloud_2: - 192.168.1.10 - 192.168.1.11 - 192.168.1.12 ... external_cloud_2: - 10.0.1.41 ...
使用其他环境文件将
overcloud-two
环境文件添加到堆栈中,并部署额外的 overcloud:(undercloud)$ openstack overcloud deploy --templates \ --stack overcloud-two \ -n ~/overcloud-two/network_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml \ -e ~/overcloud-two/network_overrides.yaml \ -e [your environment files] \ ...
部署过程创建
overcloud-tworc
,用于与overcloud-two
交互。要与其他 overcloud 交互,请提供 overcloud 凭证文件:
$ source overcloud-tworc