3.3. HAProxy ロードバランサーと PostgreSQL データベースのセットアップ


次の手順を使用して、HAProxy ロードバランサーと PostgreSQL データベースをセットアップします。

前提条件

  • Podman または Docker CLI がインストールされている。

手順

  1. 最初の 2 つのシステム q01q02 に、HAProxy ロードバランサーと PostgreSQL データベースをインストールします。これにより、他のシステムで実行されている次のサービスのアクセスポイントおよびロードバランサーとして HAProxy が設定されます。

    • Red Hat Quay (B システムではポート 80 および 443)
    • Redis (B システムではポート 6379)
    • RADOS (C システムではポート 7480)
  1. SELinux ですべての HAProxy ポートを開き、ファイアウォールで選択した HAProxy ポートを開きます。

    # setsebool -P haproxy_connect_any=on
    # firewall-cmd --permanent --zone=public --add-port=6379/tcp --add-port=7480/tcp
    success
    # firewall-cmd --reload
    success
    Copy to Clipboard Toggle word wrap
  1. /etc/haproxy/haproxy.cfg を設定して、Red Hat Quay、Redis、および Ceph RADOS サービスを提供するシステムとポートを指すようにします。以下は、デフォルトと追加されたフロントエンドおよびバックエンド設定の例です。

    #---------------------------------------------------------------------
    # common defaults that all the 'listen' and 'backend' sections will
    # use if not designated in their block
    #---------------------------------------------------------------------
    defaults
        mode                    tcp
        log                     global
        option                  httplog
        option                  dontlognull
        option http-server-close
        option forwardfor       except 127.0.0.0/8
        option                  redispatch
        retries                 3
        timeout http-request    10s
        timeout queue           1m
        timeout connect         10s
        timeout client          1m
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check           10s
        maxconn                 3000
    
    #---------------------------------------------------------------------
    # main frontend which proxys to the backends
    #---------------------------------------------------------------------
    
    frontend  fe_http *:80
        default_backend             be_http
    frontend  fe_https *:443
        default_backend             be_https
    frontend fe_redis *:6379
       default_backend              be_redis
    frontend  fe_rdgw *:7480
        default_backend             be_rdgw
    backend be_http
        balance     roundrobin
        server quay01 quay01:80 check
        server quay02 quay02:80 check
        server quay03 quay03:80 check
    backend be_https
        balance     roundrobin
        server quay01 quay01:443 check
        server quay02 quay02:443 check
        server quay03 quay03:443 check
    backend be_rdgw
        balance     roundrobin
        server ceph01 ceph01:7480 check
        server ceph02 ceph02:7480 check
        server ceph03 ceph03:7480 check
    backend be_redis
    server quay01 quay01:6379 check inter 1s
    server quay02 quay02:6379 check inter 1s
    server quay03 quay03:6379 check inter 1s
    Copy to Clipboard Toggle word wrap

    新しい haproxy.cfg ファイルが配置されたら、次のコマンドを入力して HAProxy サービスを再起動します。

    # systemctl restart haproxy
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを入力して、PostgreSQL データベースのフォルダーを作成します。

    $ mkdir -p /var/lib/pgsql/data
    Copy to Clipboard Toggle word wrap
  3. /var/lib/pgsql/data フォルダーに次の権限を設定します。

    $ chmod 777 /var/lib/pgsql/data
    Copy to Clipboard Toggle word wrap
  4. 次のコマンドを入力して、PostgreSQL データベースを起動します。

    $ sudo podman run -d --name postgresql_database \
        -v /var/lib/pgsql/data:/var/lib/pgsql/data:Z  \
        -e POSTGRESQL_USER=quayuser -e POSTGRESQL_PASSWORD=quaypass \
        -e POSTGRESQL_DATABASE=quaydb -p 5432:5432 \
        registry.redhat.io/rhel8/postgresql-13:1-109
    Copy to Clipboard Toggle word wrap
    注記

    コンテナーのデータは、ホストシステムの /var/lib/pgsql/data ディレクトリーに保存されます。

  5. 次のコマンドを入力して、使用可能な拡張機能をリスト表示します。

    $ sudo podman exec -it postgresql_database /bin/bash -c 'echo "SELECT * FROM pg_available_extensions" | /opt/rh/rh-postgresql96/root/usr/bin/psql'
    Copy to Clipboard Toggle word wrap

    出力例

       name    | default_version | installed_version |           comment
    -----------+-----------------+-------------------+----------------------------------------
     adminpack | 1.0             |                   | administrative functions for PostgreSQL
    ...
    Copy to Clipboard Toggle word wrap

  6. 次のコマンドを入力して、pg_trgm 拡張機能を作成します。

    $ sudo podman exec -it postgresql_database /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm;" | /opt/rh/rh-postgresql96/root/usr/bin/psql -d quaydb'
    Copy to Clipboard Toggle word wrap
  7. 次のコマンドを入力して、pg_trgm が作成されたことを確認します。

    $ sudo podman exec -it postgresql_database /bin/bash -c 'echo "SELECT * FROM pg_extension" | /opt/rh/rh-postgresql96/root/usr/bin/psql'
    Copy to Clipboard Toggle word wrap

    出力例

     extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
    ---------+----------+--------------+----------------+------------+-----------+--------------
     plpgsql |       10 |           11 | f              | 1.0        |           |
     pg_trgm |       10 |         2200 | t              | 1.3        |           |
    (2 rows)
    Copy to Clipboard Toggle word wrap

  8. Postgres ユーザー quayuser の権限を変更し、superuser ロールを付与して、ユーザーにデータベースへの無制限のアクセスを許可します。

    $ sudo podman exec -it postgresql_database /bin/bash -c 'echo "ALTER USER quayuser WITH SUPERUSER;" | /opt/rh/rh-postgresql96/root/usr/bin/psql'
    Copy to Clipboard Toggle word wrap

    出力例

    ALTER ROLE
    Copy to Clipboard Toggle word wrap

  9. システムで firewalld サービスがアクティブになっている場合は、次のコマンドを実行して、ファイアウォール経由で PostgreSQL ポートを使用できるようにします。

    # firewall-cmd --permanent --zone=trusted --add-port=5432/tcp
    Copy to Clipboard Toggle word wrap
    # firewall-cmd --reload
    Copy to Clipboard Toggle word wrap
  10. オプション: postgres CLI パッケージがインストールされていない場合は、次のコマンドを入力してインストールします。

    # yum install postgresql -y
    Copy to Clipboard Toggle word wrap
  11. psql コマンドを使用して、PostgreSQL データベースへの接続をテストします。

    注記

    サービスにリモートでアクセスできることを確認するには、リモートシステムで次のコマンドを実行します。

    # psql -h localhost quaydb quayuser
    Copy to Clipboard Toggle word wrap

    出力例

    Password for user test:
    psql (9.2.23, server 9.6.5)
    WARNING: psql version 9.2, server version 9.6.
             Some psql features might not work.
    Type "help" for help.
    
    test=> \q
    Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat