OpenStack Neutron が実行されているノードで、コマンド ライン インターフェイスを使用して LBaaS を設定できます。

前提条件

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

    注:

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

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

手順

  1. OpenStack 管理サーバviouser としてログインします。
  2. コントローラ ノードに viouser としてログインします。
  3. ユーザー アカウントの認証情報ファイルをロードします。
    source user-credentials.rc
  4. ロード バランサを作成します。
    neutron lbaas-loadbalancer-create --name lb-name lb-subnet-id

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

  5. 新しいロード バランサーのリスナーを指定します。
    neutron lbaas-listener-create --loadbalancer lb-name --protocol {HTTP | TCP} --protocol-port port-num --name listener-name
  6. 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 アドレスからのすべての接続は、プールの同じメンバーによって処理されます。

  7. 作成した 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
  8. 健全性監視をセットアップします。
    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 プールを指定します。

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