Configuring haproxy#
TPAは、 role にhaproxy
が含まれるインスタンスにhaproxyをインストールおよび構成します。
デフォルトでは、 haproxyは127.0.0.1:5432
で、同じインスタンスで実行されている Repmgrリダイレクトpgbouncer によって転送された要求をリッスンします。要求を転送するhaproxy_backend_servers
のリストを指定する必要があります。
TPAは、デフォルトでhaproxyの最新バージョンをインストールします。
haproxy_package_version: 1.9.15*
たとえば、を設定することにより、特定のバージョンをインストールできます。
注 tpaexec-configure のpackage_versionでのワイルドカードの使用の制限を参照してください。
Haproxyパッケージは、アーキテクチャのタイプに応じて選択されます。 EDB管理対象haproxyパッケージを使用できますが、サブスクリプションが必要です。必要に応じて、 PGDGエクストラリポジトリからのパッケージをインストールできます。
haproxy インスタンスで次の変数を設定できます。
Variable |
Default value |
Description |
|---|---|---|
haproxy_bind_address |
127.0.0.1* |
`failover_manager`がパトロニの場合、haproxyが0.0.0.0をバインドするアドレス。 * ユーザーはこの値を、クラスターネットワーキングに適したより制限的なものに変更する必要があります** |
haproxy_port |
5432 (5444 for EPAS) |
TCPポートHAプロキシがリッスンする必要がある |
haproxy_read_only_port |
5433 (5445 for EPAS) |
読み取り専用ロードバランサーのTCPポート |
haproxy_backend_servers |
None |
Postgresインスタンス名のリスト |
haproxy_maxconn |
`max_connections`×0.9 |
バックエンドサーバーごとに許可される接続の最大数。デフォルトは、バックエンドの`max_connections`設定から取得されます |
haproxy_peer_enabled |
True* |
既知のハプロキシホストを`peer`リストとして追加します。 *`False` `failover_manager`がharpまたはpatroniの場合。 |
読み取り専用ロードバランサー#
データベースへの読み取り専用アクセスを追加ポートでリッスンするようにHaproxyを構成できます。現時点では、これはPatroniフェールオーバーマネージャーでのみサポートされています。バックエンドヘルスチェックは、どのpostgresインスタンスが現在レプリカとして機能し、ラウンドロビンロードバランシングアルゴリズムを使用してトラフィックを送信するかを判断します。
読み取り専用ロードバランサーはデフォルトで無効になっていますが、
cluster_vars変数 haproxy_read_only_load_balancer_enabled
を使用して有効にできます。
サーバーオプション#
TPAは、 default-server
行とバックエンドサーバーごとに1行があるバックエンドで/etc/haproxy/haproxy.cfg
を生成します。最初のサーバーを除くすべては「バックアップ」サーバーとしてマークされます。
haproxy_default_server_extra_options
をhaproxyインスタンスのオプションのリストに設定して、default-server
行にオプションを追加します。そして、 haproxy_server_options
をバックエンドサーバーのオプションのリストに設定して、各バックエンドの個々のサーバー行にオプションデフォルトをオーバーライドします。
例#
instances:
- Name: one
vars:
haproxy_server_options:
- maxconn 33
- Name: two
…
- Name: proxy
role:
- haproxy
vars:
haproxy_backend_servers:
- one
- two
haproxy_default_server_extra_options:
- on-error mark-down
- on-marked-down shutdown-sessions