10.17. 名前がホスト名およびパスと一致するリクエストのプールへの送信

Red Hat OpenStack Platform (RHOSP) Load-balancing サービス (octavia) を使用して、特定の条件に一致する Web クライアントリクエストをアプリケーションサーバーの別のプールにリダイレクトすることができます。ビジネスロジックの条件は、事前定義されたホスト名およびリクエストパスを照合しようとするレイヤー 7 (L7) ポリシーで実行されます。

以下の例では、ホスト名 api.example.com に一致するか、リクエストパスの先頭が /api であるすべての Web クライアントリクエストは、別のプール api_pool にリダイレクトされます。

前提条件

手順

  1. Source コマンドで認証情報ファイルを読み込みます。

    $ source ~/overcloudrc

  2. ロードバランサー (lb1) に 2 番目のプール (api_pool) を作成します。

    注記

    丸かっこ内の値は、この手順のコマンド例で使用されるサンプルの値です。これらのサンプル値を、実際のサイトに適した値に置き換えてください。

    $ openstack loadbalancer pool create --lb-algorithm ROUND_ROBIN --loadbalancer lb1 --name api_pool --protocol HTTP

  3. プライベートサブネット (private_subnet) のロードバランサーメンバー (192.0.2.10 および 192.0.2.11) をプール (static_pool) に追加します。

    $ openstack loadbalancer member create --subnet-id private_subnet --address 192.0.2.10 --protocol-port 80 static_pool
    $ openstack loadbalancer member create --subnet-id private_subnet --address 192.0.2.11 --protocol-port 80 static_pool

  4. リスナー (listener1) に L7 ポリシー (policy1) を作成します。ポリシーには、アクション (REDIRECT_TO_POOL) を追加し、プール (api_pool) を示す必要があります。

    $ openstack loadbalancer l7policy create --action REDIRECT_TO_POOL --redirect-pool api_pool --name policy1 listener1

  5. ホスト名 api.example.com にマッチする L7 ルールを、ポリシーに追加します。

    $ openstack loadbalancer l7rule create --compare-type EQUAL_TO --type HOST_NAME --value api.example.com policy1

  6. リクエスパスの最初の /api にマッチする 2 番目の L7 ルールを、ポリシーに追加します。

    このルールは、最初のルールと論理的に AND で結合されます。

    $ openstack loadbalancer l7rule create --compare-type STARTS_WITH --type PATH --value /api policy1

検証

  1. openstack loadbalancer l7policy list コマンドを実行し、ポリシー policy1 が存在することを確認します。
  2. openstack loadbalancer l7rule list <l7policy> コマンドを実行し、policy1compare_typeSTARTS_WITH および STARTS_WITH であるルールが共に存在することを確認します。

    $ openstack loadbalancer l7rule list policy1
    $ openstack loadbalancer l7rule list policy2

関連情報