第8章 エッジサイトでのネットワークトラフィックの負荷分散
Red Hat OpenStack Platform (RHOSP) Load-balancing サービス (octavia) を使用して、エッジサイトにロードバランサーを作成し、トラフィックのスループットを向上させ、レイテンシーを短縮できます。
このセクションに含まれるトピックは次のとおりです。
8.1. Load-balancing サービスアベイラビリティーゾーンのネットワークリソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform (RHOSP) Load-balancing サービス (octavia) アベイラビリティーゾーン (AZ) を作成するには、RHOSP 管理者として Ansible Playbook octavia-dcn-deployment.yaml を実行する必要があります。
octavia-dcn-deployment.yaml を実行すると、Load-balancing サービス AZ に必要なネットワーク、サブネット、ルーターなどのネットワークリソースを作成できます。Playbook には、AZ 名と各 AZ が使用する管理ネットワークを指定した設定入力ファイル octavia-dcn-parameters.yaml を指定します。
Playbook を実行して必要なネットワークリソースを作成した後、プロジェクト (テナント) ユーザーが分散コンピュートノード (DCN) ロケールに適した AZ にロードバランサーを作成できるようにする前に、実際の RHOSP Load-balancing サービス AZ を作成する必要があります。
この手順では、az-central、az-dcn1、および az-dcn2 という名前の 3 つの Load-balancing サービス AZ に必要なネットワークリソースを作成する方法を示しています。これらの Load-balancing サービス AZ 名は、Compute サービス AZ の名前と一致し、このデプロイメントで使用される 3 つの DCN の名前でもあります。
前提条件
- 作成する Load-balancing サービス AZ ごとに 1 つの Compute サービス (nova) AZ がある。
- また、作成する Load-balancing サービス AZ ごとに Networking サービス (neutron) AZ が 1 つある。これらの Networking サービス AZ は、Compute サービス AZ の名前と一致する。
- Load-balancing サービスプロバイダードライバーが amphora である。OVN プロバイダードライバーは AZ をサポートしません。
-
adminロールを持つ RHOSP ユーザーである。
手順
Source コマンドで認証情報ファイルを読み込みます。
- 例
$ source ~/centralrc
octavia-dcn-parameters.yamlファイルを作成し、以下に示す構文を使用して、Ansible Playbook で必要なネットワークリソースを作成する Load-balancing サービス AZ とその管理ネットワークを追加します。octavia_controller_AZ_nameの値は、すべての Load-balancer サービスが実行される AZ の名前です。octavia_controller_availability_zone: <octavia_controller_AZ_name> octavia_availability_zones: <octavia_controller_AZ_name>: $ no cidr needed, it uses the already existing subnet <octavia_AZ_n>: lb_mgmt_subnet_cidr: <CIDR_address_n> <octavia_AZ_n2>: lb_mgmt_subnet_cidr: <CIDR_address_n2>重要指定する Load-balancing サービス AZ の名前は、既存の Compute サービス AZ の名前と一致する必要があります。Compute サービス AZ の名前を取得するには、
openstack availability zone list --computeを実行します。Ansible Playbook は、AZ ごとにネットワーク、サブネット、ルーターを作成し、それぞれ
lb-mgmt-<AZ_name>-net、lb-mgmt-<AZ_name>-subnet、およびlb-mgmt-<AZ_name>-routerという規則に従って、octavia-dcn-parameters.yamlで指定した AZ 名を使用して名前を付けます。例外はoctavia_controller_AZ_nameのネットワークリソースです。Playbook は既存の負荷分散管理ネットワークとサブネット、それぞれlb-mgmt-netとlb-mgmt-subnetを使用し、lb-mgmt-routerという名前の関連ルーターを作成します。この例では、
az-central、az-dcn1、およびaz-dcn2の 3 つの AZ が指定されています。az-centralAZ は、既存の負荷分散管理ネットワークlb-mgmt-netを使用します。他の 2 つの AZ は、それぞれ172.47.0.0/16と172.48.0.0/16を使用します。- 例
octavia_controller_availability_zone: az-central octavia_availability_zones: az-central: # no cidr needed; it uses the existing subnet az-dcn1: lb_mgmt_subnet_cidr: 172.47.0.0/16 az-dcn2: lb_mgmt_subnet_cidr: 172.48.0.0/16
Ansible Playbook の
octavia-dcn-deployment.yamlを実行し、octavia-dcn-parameters.yamlで作成した AZ 定義を含めます。- 例
$ ansible-playbook -i overcloud-deploy/central/config-download/\ central/tripleo-ansible-inventory.yaml \ /usr/share/ansible/tripleo-playbooks/octavia-dcn-deployment.yaml \ -e @octavia-dcn-parameters.yaml -e stack=central -v
検証
必要な
lb-mgmt-*サブネットが存在することを確認します。$ openstack subnet list -c Name -c Subnet- 出力例
+-------------------------+------------------+ | Name | Subnet | +-------------------------+------------------+ | lb-mgmt-az-dcn2-subnet | 172.48.0.0/16 | | segment5 | 10.0.20.0/24 | | segment3 | 10.101.30.0/24 | | segment2 | 10.101.20.0/24 | | lb-mgmt-az-dcn1-subnet | 172.47.0.0/16 | | heat_tempestconf_subnet | 192.168.199.0/24 | | segment4 | 10.0.10.0/24 | | lb-mgmt-subnet | 172.24.0.0/16 | | segment1 | 10.101.10.0/24 | | lb-mgmt-backbone-subnet | 172.49.0.0/16 | | segment6 | 10.0.30.0/24 | +-------------------------+------------------+
必要な仮想ルーターが存在することを確認します。
$ openstack router list -c Name -c Status- 出力例
+------------------------+--------+ | Name | Status | +------------------------+--------+ | lb-mgmt-az-dcn2-router | ACTIVE | | lb-mgmt-az-dcn1-router | ACTIVE | | lb-mgmt-router | ACTIVE | +------------------------+--------+