このセクションでは、OpenStack クラウド用に Avi Vantage でクラスタを構成する方法について説明します。NSX Advanced Load Balancer Controller HA を提供するには、コントローラ ノードを 2 台追加して、3 ノードの Controller クラスタを作成します。

クラスタの展開の詳細については、「NSX Advanced Load Balancer Controller クラスタの展開」を参照してください。

クラスタ展開の前提条件

クラスタ内のリーダー ノードとフォロワー ノードには、特定の前提条件が定義されています。詳細については、「クラスタ展開の前提条件」を参照してください。

OpenStack の観点から、次の点を検討します。

  1. Neutron ポートが作成されていて、クラスタ VIP で使用できること。

  2. Neutron ポートにフローティング IP を使用できること。

NSX Advanced Load Balancer Controller クラスタの展開

コントローラの管理インターフェイスとクラスタ IP の構成の詳細については、「NSX Advanced Load Balancer Controller クラスタの展開」を参照してください。

以下のセクションでは、OpenStack フローティング IP を作成し、それをクラスタ IP にバインドします。

書き込みモード

  1. OpenStack Horizon CLI にアクセスします。

    1. ネットワークを一覧表示します。

      openstack network list - これは、構成済みの必須ネットワークを示します。

      root@openstack-mitaka:/root# openstack network list
      +--------------------------------------+---------------+------------------------------------------------------+
      | id                                   | name          | subnets                                              |
      +--------------------------------------+---------------+------------------------------------------------------+
      | 10a514a3-d843-499d-80fd-28274d4a4912 | webserver-net | 3ebfb2ef-9b47-44f7-9da5-5245e1d0ed53 192.168.10.0/24 |
      | 5dd0b1cb-ebba-4ff9-84fd-74dcf13c7f86 | client-net    | a9a00d61-6ee8-4fac-80df-4e0bb8c8b4f3 192.168.11.0/24 |
      | c1c045f5-2d0f-43e3-ab43-55f990cde9b7 | provider1     | 1b65c0da-38c7-4c85-88a9-30c52c6a4558 10.130.128.0/18 |
      | dd9dab27-9228-4765-96f2-d56194136ba0 | avimgmt       | 5785c1cf-a222-4b0a-9343-003153f37a65 172.16.0.0/24   |
      +--------------------------------------+---------------+------------------------------------------------------+
    2. フローティング IP を作成します。

      openstack floating ip create provider1 - provider1 が、使用されるネットワークです。

      root@openstack-mitaka:/root# openstack floating ip create provider1

      新しいフローティング IP が作成されます。

      +---------------------+--------------------------------------+
      | Field               | Value                                |
      +---------------------+--------------------------------------+
      | description         |                                      |
      | fixed_ip_address    |                                      |
      | floating_ip_address | 10.130.170.86                        |
      | floating_network_id | c1c045f5-2d0f-43e3-ab43-55f990cde9b7 |
      | id                  | 4ec57a12-7357-461a-80f6-d87ae7536335 |
      | port_id             |                                      |
      | router_id           |                                      |
      | status              | DOWN                                 |
      | tenant_id           | 904fb201a92f443297bffca3b354d52d     |
      +---------------------+--------------------------------------+
    3. クラスタ IP の port-id を取得します。

       openstack port list -c ID -c 'Fixed IP Addresses'|grep 172.16.0.65
           95665123-64a4-453a-abde-70fdb3d2ae2a| ip_address='172.16.0.65', subnet_id='5785c1cf-a222-4b0a-9343-003153f37a65'
    4. クラスタ IP をフローティング IP に関連付けます。

      上記のコマンド(この場合は 95665123-64a4-453a-abde-70fdb3d2ae2a)の port-id を使用して、手順 b で作成したフローティング IP アドレスに関連付けます。

      root@openstack-mitaka:/root# openstack floating ip set --port 95665123-64a4-453a-abde-70fdb3d2ae2a 4ec57a12-7357-461a-80f6-d87ae7536335
      
      +--------------------------+--------------------------------------+
      | Field                    | Value                               |
      +--------------------------+--------------------------------------+
      | description              |                                     |
      | fixed_ip_address         | 172.16.0.65                         |
      | floating_ip_address      | 10.130.170.86                       |
      | floating_network_id      | c1c045f5-2d0f-43e3-ab43-55f990cde9b7|
      | id                       | 4ec57a12-7357-461a-80f6-d87ae7536335|
      | port_id                  | 95665123-64a4-453a-abde-70fdb3d2ae2a|
      | router_id                | 2d3b93a2-7804-4841-90c4-be15b148d099|
      | status                   | ACTIVE                              |
      | tenant_id                | 904fb201a92f443297bffca3b354d52d    |
      +--------------------------+--------------------------------------+
  2. クラスタ リーダーのクラスタ IP とセカンダリ IP を追加します。

    root@172-16-0-66:~# ip a
    eth0: (BROADCAST,MULTICAST,UP,LOWER_UP) mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:bd:5a:0f brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.66/24 brd 172.16.0.255 scope global eth0
    valid_lft forever preferred_lft forever
    inet 172.16.0.65/32 scope global eth0:1 Cluster IP

アクセス権なしモード

OpenStack No-Access クラウド タイプの場合、次のコマンドを使用して AAP エントリを手動で構成する必要があります。

以下のコード ブロックに例を示します。

root@openstack-mitaka:/root# openstack port set --allowed--address ip-address=172.16.0.133 Controller_Port
root@openstack-mitaka:/root#  openstack port set --allowed--address ip-address=172.16.0.133 d0bf0bda-02e2-46bf-abd2-0d05cc4654df
root@openstack-mitaka:/root# openstack port show d0bf0bda-02e2-46bf-abd2-0d05cc4654df    
        +-------------------------------+-----------------------------------------------------------------------------------+
 | Field                    | Value                                                                                  |
 +--------------------------+----------------------------------------------------------------------------------------+
 | admin_state_up           |   True                                                                                 |
 | allowed_address_pairs    |   {"ip_address": "172.16.0.131", "mac_address": "fa:16:3e:47:6b:70"}                   |
 | binding:host_id          |   openstack-mitaka                                                                     |
 | binding:profile          |   {}                                                                                   |
 | binding:vif_details      |   {"port_filter": true}                                                                |
 | binding:vif_type         |   bridge                                                                               |
 | binding:vnic_type        |   normal                                                                               |
 | created_at               |   2018-01-12T13:58:02                                                                  |
 | description              |                                                                                        |
 | device_id                |   2adedfc3-75d6-4296-ad18-bfc38873485c                                                 |
 | device_owner             |   compute:nova                                                                         |
 | extra_dhcp_opts          |                                                                                        |
 | fixed_ips                |   {"subnet_id": "5785c1cf-a222-4b0a-9343-003153f37a65", "ip_address": "172.16.0.133"}  |
 | id                       |   d0bf0bda-02e2-46bf-abd2-0d05cc4654df                                                 |
 | mac_address              |   fa:16:3e:47:6b:70                                                                    |
 | name                     |                                                                                        |
 | network_id               |   dd9dab27-9228-4765-96f2-d56194136ba0                                                 |
 | port_security_enabled    |   True                                                                                 |
 | security_groups          |   3cc1092e-538c-4ff7-b4ac-eeff84731f75                                                 |
 | status                   |   ACTIVE                                                                               |
 | tenant_id                |   904fb201a92f443297bffca3b354d52d                                                     |
 | updated_at               |   2018-01-12T14:19:06                                                                  |
 +--------------------------+----------------------------------------------------------------------------------------+

次のコマンドを使用して、VIP 用の Neutron ポートを作成します。

openstack port create --network "neutron_network_name" --allowed-address mac-address="fa:16:3e:52:81:03",ip-address="172.16.0.63" --allowed-address mac-address="fa:16:3e:52:81:04",ip-address="172.16.0.64" --allowed-address mac-address="fa:16:3e:52:81:06",ip-address="172.16.0.66" --fixed-ip ip-address="172.16.0.65" --project "904fb201a92f443297bffca3b354d52d"

次に例を示します。

openstack port create --network "neutron_network_name" --allowed-address mac-address="controller_mac1",ip-address="controller_ip1" --allowed-address mac-address="controller_mac2",ip-address="controller_ip2" --allowed-address mac-address="controller_mac3",ip-address="controller_ip3" --fixed-ip ip-address="cluster_ip" --project "project-id"
注:

リーダー コントローラに障害が発生した場合(または再起動した場合)、フォロワー コントローラがクラスタ IP (172.16.0.65) を引き継ぎ、フローティング IP (10.130.170.86) とクラスタ IP (172.16.0.65) の間のマッピングは変更されません。したがって、フローティング IP とクラスタ IP の関連付けはユーザーの操作なしで期待どおりに機能します。