第10章 複数のオーバークラウドのデプロイ

重要

この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、「対象範囲の詳細」を参照してください。

1 つのアンダークラウドノードを使用して、複数のオーバークラウドをデプロイおよび管理することができます。それぞれのオーバークラウドは、スタックリソースを共有しない個別の heat スタックです。この構成は、アンダークラウドとオーバークラウドの比率が 1 : 1 の環境で、無視できない程度のオーバーヘッドが発生する場合に有用です。たとえば、エッジサイト、複数サイト、および複数製品にまたがる環境などです。

複数オーバークラウドのシナリオにおけるオーバークラウド環境は完全に独立し、source コマンドを使用して環境間の切り替えを行うことができます。ベアメタルのプロビジョニングに ironic を使用する場合には、すべてのオーバークラウドが同じプロビジョニングネットワーク上に存在している必要があります。同じプロビジョニングネットワークを使用することができない場合には、デプロイされたサーバー法を使用して、ルーティングされたネットワークで複数のオーバークラウドをデプロイすることができます。このシナリオでは、HostnameMap パラメーターの値が各オーバークラウドのスタック名と一致している必要があります。

以下のワークフローを使用して、基本的なプロセスについて説明します。

アンダークラウドのデプロイ
通常どおりにアンダークラウドをデプロイします。詳細は、??? を参照してください。
最初のオーバークラウドのデプロイ
通常どおりに最初のアンダークラウドをデプロイします。詳細は、???を参照してください。
追加のオーバークラウドのデプロイ
新しいオーバークラウド用に新たな環境ファイルのセットを作成します。デプロイメントコマンドを実行し、コアの heat テンプレートと共に新たな設定ファイルおよび新しい stack 名を指定します。

10.1. 追加のオーバークラウドのデプロイ

以下の例では、既存のオーバークラウドを overcloud-one としています。新たなオーバークラウド overcloud-two をデプロイするには、以下の手順を実施します。

前提条件

追加のオーバークラウドのデプロイを開始する前に、ご自分の環境に以下の構成が含まれるようにします。

  • 正常にデプロイされたアンダークラウドおよびオーバークラウド
  • 追加のオーバークラウドで利用可能なノード
  • それぞれのオーバークラウドが作成されるスタックで固有のネットワークを持つように、追加のオーバークラウド用のカスタムネットワーク

手順

  1. デプロイする追加のオーバークラウド用に、新たなディレクトリーを作成します。

    $ mkdir ~/overcloud-two
  2. 新しいディレクトリーにおいて、追加のオーバークラウドの要件に固有な新しい環境ファイルを作成し、該当するすべての環境ファイルを既存のオーバークラウドからコピーします。

    $ cp network-data.yaml ~/overcloud-two/network-data.yaml
    $ cp network-environment.yaml ~/overcloud-two/network-environment.yaml
  3. 新たなオーバークラウドの仕様に従って、環境ファイルを変更します。たとえば、既存のオーバークラウドの名前が overcloud-one で、network-data.yaml 環境ファイルで定義する VLAN を使用する場合、環境ファイルは以下のようになります。

    - name: InternalApi
      name_lower: internal_api_cloud_1
      service_net_map_replace: internal_api
      vip: true
      vlan: 20
      ip_subnet: '172.17.0.0/24'
      allocation_pools: [{'start': '172.17.0.4', 'end': '172.17.0.250'}]
      ipv6_subnet: 'fd00:fd00:fd00:2000::/64'
      ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}]
      mtu: 1500
    - name: Storage
      ...

    新たなオーバークラウドは overcloud-two という名前で、異なる VLAN を使用します。~/overcloud-two/network-data.yaml 環境ファイルを編集し、各サブネット用の新たな VLAN ID を追加します。また、固有の name_lower 値を定義し、service_net_map_replace 属性を、置き換えるネットワークの名前に設定する必要があります。

    - name: InternalApi
      name_lower: internal_api_cloud_2
      service_net_map_replace: internal_api
      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
      ...
  4. ~/overcloud-two/network-environment.yaml ファイルの以下のパラメーターを変更します。

    • overcloud-two に固有の外部ネットワークが設定されるように、ExternalNetValueSpecs パラメーターの {'provider:physical_network'} 属性に固有の値を入力し、'provider:network_type' 属性でネットワーク種別を定義します。
    • オーバークラウドの外部アクセスが可能になるように、ExternalInterfaceDefaultRoute パラメーターを外部ネットワークのゲートウェイの IP アドレスに設定します。
    • オーバークラウドが DNS サーバーにアクセスできるように、DnsServers パラメーターを DNS サーバーの IP アドレスに設定します。

      parameter_defaults:
        ...
        ExternalNetValueSpecs: {'provider:physical_network': 'external_2', 'provider:network_type': 'flat'}
        ExternalInterfaceDefaultRoute: 10.0.10.1
        DnsServers:
          - 10.0.10.2
        ...
  5. openstack overcloud deploy コマンドを実行します。--templates オプションおよび --stack オプションを使用して、それぞれコアの heat テンプレートコレクションおよび新たな stack 名を指定します。また、~/overcloud-two ディレクトリーからの新規環境ファイルをすべて指定します。

    $ openstack overcloud deploy --templates \
        --stack overcloud-two \
        ...
        -n ~/overcloud-two/network-data.yaml \
        -e ~/overcloud-two/network-environment.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml \
        ...

それぞれのオーバークラウドには、固有の認証情報ファイルが設定されます。ここでの例では、デプロイメントプロセスにより overcloud-one 用に overcloud-onerc が、overcloud-two 用に overcloud-tworc が、それぞれ作成されます。いずれかのオーバークラウドに関する操作を行うには、source コマンドで適切な認証情報ファイルを読み込む必要があります。たとえば、source コマンドを使用して最初のオーバークラウドの認証情報を読み込むには、以下のコマンドを実行します。

$ source overcloud-onerc