アクティブなコントローラ ノードで、コマンド ライン インターフェイスを使用して LBaaS を設定できます。

LBaaS リスナーには、HTTP、TCP、または終端 HTTPS を使用できます。終端 HTTPS リスナーは受信接続の TLS を終端し、終端 HTTPS リスナーの TLS 証明書とキーは Barbican に格納されます。終端 HTTPS リスナーを作成する場合は、クラウド管理者に連絡し、アクセス コントロール リスト (ACL) を設定して barbican ユーザーにプロジェクトのシークレットへのアクセス権を付与する必要があるかどうかを決定します。

前提条件

  • ネットワークにパブリック サブネットおよびルーターを作成します。NSX Data Center for vSphere デプロイでは、ルーター タイプを exclusive にする必要があります。

    注:

    テナントのサブネットにロード バランサを作成できますが、ロード バランサにフローティング IP アドレスを割り当てる必要があります。

  • 1 つ以上のクライアントと 2 つ以上のサーバ インスタンスを設定します。

手順

  1. OpenStack 管理サーバviouser としてログインします。
  2. コントローラ ノードに viouser としてログインします。
  3. ユーザー アカウントの認証情報ファイルをロードします。
    source user-credentials.rc
  4. 終端 HTTPS リスナーを作成し、ACL を設定する必要がある場合は、barbican ユーザーに証明書、キー、および TLS コンテナへのアクセスを許可します。
    openstack acl user add -u barbican-uuid object-name

    プロジェクトの各証明書、キー、およびコンテナに対してこのコマンドを 1 回実行します。

    openstack user list コマンドを実行して、Barbican ユーザーの UUID を検索できます。openstack secret list コマンドを実行して、証明書、キー、およびコンテナの名前を検索することができます。

  5. ロード バランサを作成します。
    neutron lbaas-loadbalancer-create --name lb-name lb-subnet-id

    指定したサブネットのメンバーのみを LBaaS プールに追加できます。

  6. 新しいロード バランサーのリスナーを指定します。
    neutron lbaas-listener-create --loadbalancer lb-name --protocol {HTTP | TCP | TERMINATED_HTTPS} --protocol-port port-num --name listener-name [--default-tls-container=tls-container-uuid]

    TERMINATED_HTTPS をプロトコルとして指定する場合は、TLS コンテナの ID も指定する必要があります。

  7. LBaaS プールを作成します。
    neutron lbaas-pool-create --lb-algorithm lb-method --listener listener-name --protocol {TCP | HTTP} --name pool-name

    --lb-algorithm パラメータは、次の値を受け入れます。

    引数

    説明

    LEAST_CONNECTIONS

    新しいクライアント要求は、接続数が最も少ないサーバに送信されます。

    ROUND_ROBIN

    各サーバは、割り当てられている重み付けに従って順番に使用されます。

    SOURCE_IP

    同じソース IP アドレスからのすべての接続は、プールの同じメンバーによって処理されます。

  8. 作成した LBaaS プールに 2 台以上のサーバ インスタンスを追加します。
    neutron lbaas-member-create --subnet lb-subnet-id --address server1-ip --protocol-port 80 pool-name
    neutron lbaas-member-create --subnet lb-subnet-id --address server2-ip --protocol-port 80 pool-name
  9. 健全性監視をセットアップします。
    neutron lbaas-healthmonitor-create --delay delay-seconds --type {HTTP | TCP | PING} --max-retries number --timeout timeout-seconds --pool pool-name

    パラメータ

    説明

    --delay

    メンバーにプローブを送信してから次のプローブを送信するまでの時間を入力します。

    --type

    HTTPTCP、または PING を指定します。

    --max-retries

    メンバーのステータスを INACTIVE に変更する前に、許可される接続失敗回数を入力します。

    --timeout

    タイムアウトまでに、接続の確立を監視が待機する秒数を入力します。

    タイムアウトの値は遅延の値よりも小さくする必要があります。

    --pool

    作成した LBaaS プールを指定します。

  10. テナントのサブネットにロード バランサを作成した場合は、ロード バランサにフローティング IP アドレスを関連付けます。
  11. (オプション) LBaaS 構成を検証するためのテスト要求を送信します。
    1. OpenStack 管理サーバviouser としてログインします。
    2. テスト用の index.html ファイルを作成します。
    3. 同じディレクトリで、Web サーバを起動します。
      sudo python -m SimpleHTTPServer 80
    4. クライアント インスタンスにログインします。
    5. wget コマンドを実行し、実行した要求がプール内のサーバ間で適切にロード バランシングされているかどうかを確認します。
      • TLS を使用しないロード バランシングの場合は、次のコマンドを実行します。

        wget -O - http://mgmt-server-ip
      • TLS を使用するロード バランシングの場合は、次のコマンドを実行します。

        wget -O - https://mgmt-server-ip