第5章 HAProxy の使用
HAProxy は、トラフィックの負荷を複数のコントローラーに分散することによって、OpenStack に高可用性機能を提供します。haproxy パッケージには、ロギング機能やサンプルの設定以外に、systemd サービスから起動される haproxy デーモンが含まれています。前述したように、Pacemaker は HAProxy サービス自体を、haproxy-bundle と呼ばれる高可用性サービスとして管理します 。
HAProxy の設定を検証する方法については、「haproxy.cfg がOpenStack のサービスをロードバランシングできるよう正しく設定されているかどうか、確認する方法はありますか?」の KCS ソリューションを参照してください。
Red Hat OpenStack Platform では、director により複数の OpenStack サービスが haproxy サービスを有効活用できるように設定されます。HAProxy は各オーバークラウドノード上の専用のコンテナー内で実行されるため、director はそれらの OpenStack サービスを /var/lib/config-data/haproxy/etc/haproxy/haproxy.cfg ファイルで構成することによって設定します。
そのファイル内の各サービスで、以下のプロパティーを確認できます。
- listen: 要求をリッスンするサービス名
- bind: サービスがリッスンする IP アドレスおよび TCP ポート番号
- server: サービスを提供する各サーバー名、サーバーの IP アドレス、リッスンするポート、その他の情報
director での Red Hat OpenStack Platform のインストール時に作成される haproxy.cfg ファイルにより、HAProxy が管理する 19 の異なるサービスが特定されます。 haproxy.cfg ファイルでの cinder listen サービスの設定方法の例を以下に示します。
listen cinder
bind 172.16.0.10:8776
bind 192.168.1.150:8776
mode http
http-request set-header X-Forwarded-Proto https if { ssl_fc }
http-request set-header X-Forwarded-Proto http if !{ ssl_fc }
option httpchk
server overcloud-controller-0 172.16.0.13:8777 check fall 5 inter 2000 rise 2
server overcloud-controller-1 172.16.0.14:8777 check fall 5 inter 2000 rise 2
server overcloud-controller-2 172.16.0.15:8777 check fall 5 inter 2000 rise 2上記の Cinder サービスの HAProxy 設定例では、Cinder サービスが提供されている IP アドレスとポートを特定できます (ポート 8777 は 172.16.0.10 と 192.168.1.150)。
172.16.0.10 アドレスは、オーバークラウド内で使用するための内部 API ネットワーク (VLAN201) 上の仮想 IP アドレスです。192.168.1.150 は、オーバークラウドの外部からの API ネットワークへのアクセスを提供する外部ネットワーク (VLAN100) 上の仮想 IP アドレスです。
HAProxy は、これらの 2 つのアドレスに対する要求を overcloud-controller-0 (172.16.0.13:8777)、overcloud-controller-1 (172.16.0.14:8777)、overcloud-controller-2 (172.16.0.15:8777) のいずれかに転送することができます。
これらのサーバーに設定されたオプションでは、ヘルスチェック (check) が有効になり、ヘルスチェックに 5 回失敗すると (fall 5)、サービスは停止されていると見なされます。ヘルスチェックの実行する間隔は、inter 2000 (2000 ミリ秒または 2 秒) に設定されます。また、ヘルスチェックに 2 回成功すると (rise 2)、サーバーは稼働していると見なされます。
コントローラーノードで HAProxy が管理するサービスの一覧を以下に示します。
表5.1 HAProxy が管理するサービス
|
aodh |
cinder |
glance_api |
gnocchi |
|
haproxy.stats |
heat_api |
heat_cfn |
horizon |
|
keystone_admin |
keystone_public |
mysql |
neutron |
|
nova_metadata |
nova_novncproxy |
nova_osapi |
nova_placement |
5.1. HAProxy Stats
director により、HA デプロイメントではすべて、HAProxy Stats もデフォルトで有効になります。この機能により、データ転送、接続、サーバーの状態などについての詳細情報を HAProxy Stats のページで確認することができます。
また、director は、HAProxy Stats ページにアクセスするための IP:Port アドレスも設定します。このアドレスを確認するには、HAProxy がインストールされている任意のノードで /var/lib/config-data/haproxy/etc/haproxy/haproxy.cfg ファイルを開くと、listen haproxy.stats セクションにこの情報が記載されています。以下に例を示します。
listen haproxy.stats bind 10.200.0.6:1993 mode http stats enable stats uri / stats auth admin:<haproxy-stats-password>
この場合は、ブラウザーで 10.200.0.6:1993 にナビゲートして、stats auth の行から認証情報を入力すると、HAProxy Stats のページが表示されます。
5.2. 参考資料
HAProxy に関する詳しい情報は、「HAProxy の設定」 (『ロードバランサーの管理』)を参照してください。
haproxy.cfg ファイルで使用可能な設定に関する詳しい情報は、haproxy パッケージがインストールされている任意のシステム (例: コントローラーノードなど) の /usr/share/doc/haproxy-_VERSION/configuration.txt_ のドキュメントを参照してください。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.