2.3. ロードバランサーおよびデータベースのセットアップ


最初の 2 つのシステム(q01 および q02)で、haproxy ロードバランサーおよび postgresql データベースをインストールします。haproxy は、他のシステム上で実行される以下のサービスのアクセスポイントおよびロードバランサーとして設定されます。

  • Red Hat Quay(B システムの場合はポート 80 および 443)
  • Redis(B システムの場合はポート 6379)
  • RADOS(システム C の場合はポート 7480)

2 つのシステムのサービスはコンテナーとして実行されるため、インストールされている場合は podman を使用します。または、docker コマンドを使用することもできます。

注記

podman の使用およびコンテナーの再起動についての詳細は、本書の先のセクションの「podman の使用」を参照してください。

A システムの設定方法を以下に示します。

  1. haproxy サービスのオープンポート: 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
  2. haproxy サービスのセットアップ: /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:6380 check inter 1s
    server quay02 quay02:6380 check inter 1s
    server quay03 quay03:6380 check inter 1s

    新しい haproxy.cfg ファイルが配置されたら、haproxy サービスを再起動します。

    # systemctl restart haproxy
  3. データベースのインストール/デプロイ: PostgreSQL データベースコンテナーをインストールし、有効にし、起動します。以下は、コマンドの実行内容になります。

    • ユーザー、パスワード、およびデータベースすべてが設定されている PostgreSQL データベースを起動します。コンテナーからのデータは、ホストシステムの /var/lib/pgsql/data ディレクトリーに保存されます。
    • 利用可能な拡張機能を一覧表示します。
    • pg_trgm 拡張機能を作成します。
    • 拡張機能がインストールされていることを確認します。

      $ mkdir -p /var/lib/pgsql/data
      $ chmod 777 /var/lib/pgsql/data
      $ 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-10:1
      
      $ sudo podman exec -it postgresql_database /bin/bash -c 'echo "SELECT * FROM pg_available_extensions" | /opt/rh/rh-postgresql96/root/usr/bin/psql'
         name    | default_version | installed_version |           comment
      -----------+-----------------+-------------------+----------------------------------------
       adminpack | 1.0             |                   | administrative functions for PostgreSQL
      ...
      
      $ 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'
      
      $ sudo podman exec -it postgresql_database /bin/bash -c 'echo "SELECT * FROM pg_extension" | /opt/rh/rh-postgresql96/root/usr/bin/psql'
       extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
      ---------+----------+--------------+----------------+------------+-----------+--------------
       plpgsql |       10 |           11 | f              | 1.0        |           |
       pg_trgm |       10 |         2200 | t              | 1.3        |           |
      (2 rows)
      
      $ sudo podman exec -it postgresql_database /bin/bash -c 'echo "ALTER USER quayuser WITH SUPERUSER;" | /opt/rh/rh-postgresql96/root/usr/bin/psql'
      ALTER ROLE
  4. ファイアウォールを開く: firewalld サービスがシステムでアクティブな状態の場合には、以下のコマンドを実行して PostgreSQL ポートをファイアウォールで利用できるようにします。

    # firewall-cmd --permanent --zone=trusted --add-port=5432/tcp
    success
    # firewall-cmd --reload
    success
  5. PostgreSQL 接続のテスト: psqlコマンドを使用して、PostgreSQL データベースへの接続をテストします。リモートシステムでもこれを試し、サービスにリモートでアクセスできることを確認します。

    # yum install postgresql -y
    
    # psql -h localhost quaydb quayuser
    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
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る