第15章 Octavia を使用した Load Balancing-as-a-Service (LBaaS)
OpenStack Load-balancing サービス (Octavia) は、Red Hat OpenStack Platform director のインストール環境で、Load Balancing-as-a-Service (LBaaS) バージョン 2 の実装を提供します。本項では、Octavia を有効化する方法について説明します。Octavia サービスは、Networking API サーバーと同じノードでホストされていることを前提とします。デフォルトでは、負荷分散サービスはコントローラーノード上で実行されます。
Red Hat では、Neutron-LBaaS から Octavia への移行パスをサポートしていません。ただし、サポート対象外のオープンソースツールを利用することが可能です。詳細は、「nlbaas2octavia-lb-replicator」を参照してください。
15.1. Octavia の概要
Octavia は、amphora と呼ばれるコンピュートノード上の一式のインスタンスを使用します。amphora との通信は、負荷分散の管理ネットワーク (lb-mgmt-net
) 上で行われます。
Octavia には以下のサービスが含まれています。
- API コントローラー (
octavia_api container
) - 設定更新および amphora インスタンスのデプロイ、モニタリング、削除でコントローラーワーカーと通信します。
- コントローラーワーカー (
octavia_worker container
) - LB ネットワーク上で設定および設定の更新を amphora に送信します。
- ヘルスマネージャー
- 個々の amphora の正常性をモニタリングし、amphora で予期せずにエラーが発生した場合にフェイルオーバーイベントを処理します。
PING
タイプのヘルスモニターは、メンバーが到達可能で ICMP エコーリクエストに応答するかどうかを確認します。PING
は、そのインスタンスで実行中のアプリケーションが正常かどうかを検出しません。PING
は、ICMP エコーリクエストが有効なヘルスチェックである特定のケースでのみ使用してください。
- ハウスキーピングマネージャー
- 古い (削除済みの) データベースレコードのクリーンアップ、spares プールの管理、amphora の証明書のローテーションの管理を行います。
- ロードバランサー
- 負荷分散エンティティーを表す最上位の API オブジェクト。仮想 IP アドレスは、ロードバランサーの作成時に確保されます。ロードバランサーの作成時には、amphora インスタンスがコンピュートノードで起動します。
- Amphora
- 負荷分散を行うインスタンス。Amphora は、通常コンピュートノード上で実行されるインスタンスで、リスナー、プール、ヘルスモニター、L7 ポリシー、メンバーの設定に応じた負荷分散パラメーターにより設定されます。Amphora はヘルスマネージャーに定期的なハートビートを送信します。
- リスナー
- 負荷が分散されるサービスのリスニングエンドポイント (例: HTTP)。リスナーは複数のプールを参照し、レイヤー 7 ルールを使用してそれらのプールを切り替える場合があります。
- プール
- ロードバランサー (amphora) からのクライアント要求を処理するメンバーのグループ。1 つのプールは 1 つのリスナーにのみ関連付けられます。
- メンバー
- プール内のロードバランサー (amphora) の背後で、トラフィックを処理するコンピュートインスタンス
以下の図には、プールメンバーへの HTTPS トラフィックフローを示しています。