第10章 複数のオーバークラウドのデプロイ
この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、「対象範囲の詳細」を参照してください。
1 つのアンダークラウドノードを使用して、複数のオーバークラウドをデプロイおよび管理することができます。それぞれのオーバークラウドは、スタックリソースを共有しない個別の heat スタックです。この構成は、アンダークラウドとオーバークラウドの比率が 1 : 1 の環境で、無視できない程度のオーバーヘッドが発生する場合に有用です。たとえば、エッジサイト、複数サイト、および複数製品にまたがる環境などです。
複数オーバークラウドのシナリオにおけるオーバークラウド環境は完全に独立し、source
コマンドを使用して環境間の切り替えを行うことができます。ベアメタルのプロビジョニングに ironic を使用する場合には、すべてのオーバークラウドが同じプロビジョニングネットワーク上に存在している必要があります。同じプロビジョニングネットワークを使用することができない場合には、デプロイされたサーバー法を使用して、ルーティングされたネットワークで複数のオーバークラウドをデプロイすることができます。このシナリオでは、HostnameMap
パラメーターの値が各オーバークラウドのスタック名と一致している必要があります。
以下のワークフローを使用して、基本的なプロセスについて説明します。
10.1. 追加のオーバークラウドのデプロイ
以下の例では、既存のオーバークラウドを overcloud-one
としています。新たなオーバークラウド overcloud-two
をデプロイするには、以下の手順を実施します。
前提条件
追加のオーバークラウドのデプロイを開始する前に、ご自分の環境に以下の構成が含まれるようにします。
- 正常にデプロイされたアンダークラウドおよびオーバークラウド
- 追加のオーバークラウドで利用可能なノード
- それぞれのオーバークラウドが作成されるスタックで固有のネットワークを持つように、追加のオーバークラウド用のカスタムネットワーク
手順
デプロイする追加のオーバークラウド用に、新たなディレクトリーを作成します。
$ mkdir ~/overcloud-two
新しいディレクトリーにおいて、追加のオーバークラウドの要件に固有な新しい環境ファイルを作成し、該当するすべての環境ファイルを既存のオーバークラウドからコピーします。
$ cp network-data.yaml ~/overcloud-two/network-data.yaml $ cp network-environment.yaml ~/overcloud-two/network-environment.yaml
新たなオーバークラウドの仕様に従って、環境ファイルを変更します。たとえば、既存のオーバークラウドの名前が
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 ...
~/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 ...
-
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