第 10 章 部署多个 overcloud

重要

该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

您可以使用一个 undercloud 节点部署并管理多个 overcloud。每个 overcloud 都是唯一的 heat 栈,不共享堆栈资源。如果环境中 undercloud 和 overcloud 的比率为 1:1 时会造成无法管理的 overclound 数量时,可以使用该方法。例如,Edge、多站点和多产品环境。

多个 overcloud 部署中的 overcloud 环境是完全独立的,您可以使用 source 命令在环境之间进行切换。每个 overcloud 都有一个唯一的凭据文件,它由部署过程创建。要与 overcloud 交互,您必须提供适当的凭据文件。

如果将裸机置备服务(ironic)用于裸机置备,则所有 overcloud 必须位于同一置备网络中。如果无法使用同一置备网络,则可使用部署的服务器方法使用路由的网络部署多个 overcloud。在这种情况下,您必须确保 HostnameMap 参数中的值与每个 overcloud 的堆栈名称匹配。

要在单个 undercloud 上部署多个 overcloud,您必须执行以下任务:

  1. 部署 undercloud。如需更多信息,请参阅 section I. Director 安装和配置
  2. 部署第一个 overcloud。如需更多信息,请参阅 合作伙伴 II。基本的 overcloud 部署
  3. 通过为新 overcloud 创建新的环境文件,并在部署命令中指定核心 heat 模板以及新的配置文件和新堆栈 名称来 部署额外的 overcloud。

10.1. 部署额外 overcloud

您可以在单个 undercloud 上部署多个 overcloud。以下流程演示了如何在现有 overcloud ( overcloud-one )的现有 Red Hat OpenStack Platform (RHOSP)部署中创建和部署新的 overcloud-two

先决条件

  • undercloud。
  • 一个或多个 overcloud。
  • 可用于额外 overcloud 的节点。
  • 为额外 overcloud 自定义网络,使得每个 overcloud 在生成的堆栈中都有唯一的网络。

步骤

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
  3. 为您想部署的额外 overcloud 创建新目录:

    (undercloud)$ mkdir ~/overcloud-two
  4. network_data.yaml 文件从现有 overcloud 复制到额外 overcloud 的新目录中:

    (undercloud)$ cp network_data.yaml ~/overcloud-two/network_data.yaml
  5. 打开 ~/overcloud-two/network_data.yaml 文件,并将 name_lower 更新至额外 overcloud 网络的唯一名称:

    - name: InternalApi
      name_lower: internal_api_cloud_2
      ...
  6. 添加 service_net_map_replace (如果不存在),并将值设为额外 overcloud 网络的默认值:

    - name: InternalApi
      name_lower: internal_api_cloud_2
      service_net_map_replace: internal_api
  7. 指定额外 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
      ...
  8. 指定 overcloud-two 外部网络网关的 IP 地址:

    - name: External
      ...
      gateway_ip: <ip_address>
      ...
    • <ip_address > 替换为 overcloud-two 外部网络网关的 IP 地址,例如 10.0.10.1
  9. 为额外 overcloud 创建网络配置文件,该文件会覆盖 /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml 文件中提供的默认隔离网络配置,如 network_overrides.yaml
  10. 打开 ~/overcloud-two/network_overrides.yaml 文件,并添加 overcloud-two DNS 服务器的 IP 地址:

    parameter_defaults:
      ...
      DnsServers:
        - <ip_address>
      ...
    • <ip_address > 替换为 overcloud-two DNS 服务器的 IP 地址,例如 10.0.10.2
  11. 如果您的部署使用可预测的 IP 地址,请在新的网络 IP 地址映射文件 ips-from-pool- overcloud-two.yaml 中为 overcloud-two 节点配置 IP 地址:

    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
        ...
  12. 使用其他环境文件将 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 交互。

  13. 要与其他 overcloud 交互,请提供 overcloud 凭证文件:

    $ source overcloud-tworc