OpenStack Neutron が実行されているノードで、コマンド ライン インターフェイスを使用して LBaaS を設定できます。
前提条件
ネットワークにパブリック サブネットおよびルーターを作成します。NSX Data Center for vSphere デプロイでは、ルーター タイプを exclusive にする必要があります。
注:
テナントのサブネットにロード バランサを作成できますが、ロード バランサにフローティング IP アドレスを割り当てる必要があります。
1 つ以上のクライアントと 2 つ以上のサーバ インスタンスを設定します。
終端 HTTPS リスナーを作成する場合は、サーバ証明書とプライベート キーが NSX Manager 上のシークレットのトラスト ストアにインポートされていることを確認してください。
手順
- OpenStack 管理サーバ に
viouser としてログインします。
- コントローラ ノードに
viouser としてログインします。
- ユーザー アカウントの認証情報ファイルをロードします。
source user-credentials.rc
- ロード バランサを作成します。
neutron lbaas-loadbalancer-create --name lb-name lb-subnet-id
指定したサブネットのメンバーのみを LBaaS プールに追加できます。
- 新しいロード バランサーのリスナーを指定します。
neutron lbaas-listener-create --loadbalancer lb-name --protocol {HTTP | TCP | TERMINATED_HTTPS} --protocol-port port-num --name listener-name [--default-tls-container=nsxt-cert-uuid]
TERMINATED_HTTPS をプロトコルとして指定する場合は、NSX-T Data Center サーバ証明書の ID も指定する必要があります。
- 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 アドレスからのすべての接続は、プールの同じメンバーによって処理されます。 |
- 作成した 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
- 健全性監視をセットアップします。
neutron lbaas-healthmonitor-create --delay delay-seconds --type {HTTP | TCP | PING} --max-retries number --timeout timeout-seconds --pool pool-name
パラメータ |
説明 |
--delay |
メンバーにプローブを送信してから次のプローブを送信するまでの時間を入力します。 |
--type |
HTTP、TCP、または PING を指定します。 |
--max-retries |
メンバーのステータスを INACTIVE に変更する前に、許可される接続失敗回数を入力します。 |
--timeout |
タイムアウトまでに、接続の確立を監視が待機する秒数を入力します。 タイムアウトの値は遅延の値よりも小さくする必要があります。 |
--pool |
作成した LBaaS プールを指定します。 |
- テナントのサブネットにロード バランサを作成した場合は、ロード バランサにフローティング IP アドレスを関連付けます。
- (オプション) LBaaS 構成を検証するためのテスト要求を送信します。
- OpenStack 管理サーバ に
viouser としてログインします。
- テスト用の index.html ファイルを作成します。
- 同じディレクトリで、Web サーバを起動します。
sudo python -m SimpleHTTPServer 80
- クライアント インスタンスにログインします。
- wget コマンドを実行し、実行した要求がプール内のサーバ間で適切にロード バランシングされているかどうかを確認します。
TLS を使用しないロード バランシングの場合は、次のコマンドを実行します。
wget -O - http://mgmt-server-ip
TLS を使用するロード バランシングの場合は、次のコマンドを実行します。
wget -O - https://mgmt-server-ip