VMware Integrated OpenStack 4.0 は LBaaS v2.0 をサポートしています。デフォルトでは、VMware Integrated OpenStack のインストールまたはアップグレード プロセスの完了後に LBaaS v2.0 を有効にします。

このタスクについて

このタスクでは、健全性監視を作成し、LBaaS サーバ インスタンスが含まれる LBaaS プールに健全性監視を関連付けます。健全性監視とは、指定したプロトコルとポート上でインスタンスがまだ実行されているかどうかを確認する Neutron サービスです。

前提条件

注:

VMware Integrated OpenStack は、LBaaS v1.0 をサポートしていません。

このタスクは、NSX でデプロイされた VMware Integrated OpenStack にのみ適用されます。

手順

  1. SSH を使用して VMware Integrated OpenStack Manager にログインします。
  2. root ユーザーに切り替えます。
    sudo su -
  3. VMware Integrated OpenStack Manager から SSH を使用して Neutron ノードにログインします。
  4. root ユーザーに切り替えます。
    sudo su -
  5. 排他的なルータを作成します。
    neutron router-create --router_type=exclusive <router name>
  6. サブネットを新しいルータに接続します。
    neutron net-create <network name>
    neutron subnet-create <network name> <CIDR value> --name <subnet name>
    neutron router-interface-add <router name or id> <subnet name or id>
  7. ロード バランサーを作成します。

    この手順には、ロード バランサーの作成、リスナーの作成、ロード バランサー プールの作成が含まれます。

    1. ロード バランシング VIP サブネットを指定して、ロード バランサーを作成します。
      neutron lbaas-loadbalancer-create --name LOAD_BALANCER_1_NAME <vip-subnet-id>

      パラメータ

      説明

      name

      新しいロード バランサーの名前を指定します。

      vip-subnet-id

      新しいロード バランサーの VIP サブネットを指定します。 このサブネット上のメンバーのみをプールに追加できます。

    2. 新しいロード バランサーのリスナーを指定します。
      neutron lbaas-listener-create \
      --loadbalancer LOAD_BALANCER_1_NAME \
      --protocol <protocol type> \
      --protocol-port <protocol port> 
      --name LISTENER_1_NAME

      パラメータ

      説明

      loadbalancer

      前述のサブステップで作成したロード バランサーを指定します。

      protocol type

      リスナーのプロトコル タイプを指定します。

      • TCP

      • HTTP

      • HTTPS

      protocol port

      プロトコル ポートを指定します。

      name

      新しいリスナーの名前を指定します。

    3. LBaaS プールを作成します。
      neutron lbaas-pool-create \
      --lb-algorithm <load balancing method> \
      --listener LISTENER_1_NAME \
      --protocol <protocol type> \
      --name LB_POOL_1

      パラメータ

      説明

      lb-algorithm

      ロード バランシング方法を指定します。

      • IP_HASH

        各パケットの送信元と送信先 IP アドレスのハッシュに基づいて、サーバを選択します。

      • LEAST_CONN

        サーバに既存の接続数に基づいて、クライアント要求を複数のサーバに配信します。新しい接続は、接続数が最も少ないサーバに送信されます。

      • ROUND_ROBIN

        各サーバは、割り当てられている重み付けに従って順番に使用されます。このプロセスは、サーバの処理時間が等分に分散されたままになる場合に、最も円滑で公平なアルゴリズムです。

      • URI

        URI の左側の部分(疑問符の前の部分)がハッシュされ、実行中のサーバの合計重み付けによって除算されます。この結果により、要求をどのサーバで受信するかが指定されます。すべてのサーバが使用可能な状態である限り、要求は常に同じサーバに送信されます。

      listener

      前述のサブステップで作成したリスナーを指定します。

      プロトコル

      使用するプールのメンバーのプロトコルを指定します。

      • TCP

      • HTTP

      • HTTPS

      name

      新しいプールの名前を指定します。

  8. サーバおよびクライアントのインスタンスを作成します。
    nova boot --image <image-uuid> --flavor <flavor> <server 1 name>
    nova boot --image <image-uuid> --flavor <flavor> <server 2 name>
    nova boot --image <image-uuid> --flavor 1 <client name>
  9. 作成した LBaaS プールにサーバ インスタンスを追加します。
    neutron lbaas-member-create  \
    --subnet <subnet-id> --address <server 1 IP> \
    --protocol-port 80 <pool name>
    
    neutron lbaas-member-create  \
    --subnet <subnet-id> --address <server 2 IP> \
    --protocol-port 80 <pool name>
  10. 健全性監視をセットアップします。
    neutron lbaas-healthmonitor-create \
    --delay DELAY_IN_SECONDS --type [HTTP | TCP] --max-retries NUMBER \
    --timeout TIMEOUT_IN_SECONDS --pool LBAAS_POOL

    パラメータ

    説明

    delay

    メンバーにプローブを送信してから次のプローブを送信するまでの時間(秒単位)。

    type

    事前定義された健全性監視タイプのいずれか。HTTP または TCP を指定します。

    max-retries

    メンバーのステータスが非アクティブに変更されるまでに許容される接続の失敗数。

    timeout

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

    注:

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

    pool

    監視対象の LBaaS プールを指定します。

  11. (オプション) LBaaS 構成を検証するためのテスト要求を送信します。
    1. テスト用の index.html ファイルを作成します。
    2. 同じディレクトリから簡単な要求を実行します。
      # sudo python -m SimpleHTTPServer 80
    3. クライアント インスタンスにログインします。
    4. wget コマンドを実行し、実行した要求がプール内の 2 つのサーバ間で適切に負荷分散されているかどうかを確認します。
       # wget -O - http://<vip-ip>