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