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 にのみ適用されます。
手順
- SSH を使用して VMware Integrated OpenStack Manager にログインします。
- root ユーザーに切り替えます。
sudo su -
- VMware Integrated OpenStack Manager から SSH を使用して Neutron ノードにログインします。
- root ユーザーに切り替えます。
sudo su -
- 排他的なルータを作成します。
neutron router-create --router_type=exclusive <router name>
- サブネットを新しいルータに接続します。
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>
- ロード バランサーを作成します。
この手順には、ロード バランサーの作成、リスナーの作成、ロード バランサー プールの作成が含まれます。
- ロード バランシング VIP サブネットを指定して、ロード バランサーを作成します。
neutron lbaas-loadbalancer-create --name LOAD_BALANCER_1_NAME <vip-subnet-id>
パラメータ
説明
name
新しいロード バランサーの名前を指定します。
vip-subnet-id
新しいロード バランサーの VIP サブネットを指定します。 このサブネット上のメンバーのみをプールに追加できます。
- 新しいロード バランサーのリスナーを指定します。
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
新しいリスナーの名前を指定します。
- 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
新しいプールの名前を指定します。
- ロード バランシング VIP サブネットを指定して、ロード バランサーを作成します。
- サーバおよびクライアントのインスタンスを作成します。
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>
- 作成した 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>
- 健全性監視をセットアップします。
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 プールを指定します。
- (オプション) LBaaS 構成を検証するためのテスト要求を送信します。
- テスト用の index.html ファイルを作成します。
- 同じディレクトリから簡単な要求を実行します。
# sudo python -m SimpleHTTPServer 80
- クライアント インスタンスにログインします。
- wget コマンドを実行し、実行した要求がプール内の 2 つのサーバ間で適切に負荷分散されているかどうかを確認します。
# wget -O - http://<vip-ip>