3.3. HAProxy ロードバランサーと PostgreSQL データベースのセットアップ
次の手順を使用して、HAProxy ロードバランサーと PostgreSQL データベースをセットアップします。
前提条件
- Podman または Docker CLI がインストールされている。
手順
最初の 2 つのシステム
q01とq02に、HAProxy ロードバランサーと PostgreSQL データベースをインストールします。これにより、他のシステムで実行されている次のサービスのアクセスポイントおよびロードバランサーとして HAProxy が設定されます。- Red Hat Quay (B システムではポート 80 および 443)
- Redis (B システムではポート 6379)
- RADOS (C システムではポート 7480)
SELinux ですべての HAProxy ポートを開き、ファイアウォールで選択した HAProxy ポートを開きます。
setsebool -P haproxy_connect_any=on firewall-cmd --permanent --zone=public --add-port=6379/tcp --add-port=7480/tcp firewall-cmd --reload
# setsebool -P haproxy_connect_any=on # firewall-cmd --permanent --zone=public --add-port=6379/tcp --add-port=7480/tcp success # firewall-cmd --reload successCopy to Clipboard Copied! Toggle word wrap Toggle overflow
/etc/haproxy/haproxy.cfgを設定して、Red Hat Quay、Redis、および Ceph RADOS サービスを提供するシステムとポートを指すようにします。以下は、デフォルトと追加されたフロントエンドおよびバックエンド設定の例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい
haproxy.cfgファイルが配置されたら、次のコマンドを入力して HAProxy サービスを再起動します。systemctl restart haproxy
# systemctl restart haproxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、PostgreSQL データベースのフォルダーを作成します。
mkdir -p /var/lib/pgsql/data
$ mkdir -p /var/lib/pgsql/dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow /var/lib/pgsql/dataフォルダーに次の権限を設定します。chmod 777 /var/lib/pgsql/data
$ chmod 777 /var/lib/pgsql/dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、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$ 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-109Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記コンテナーのデータは、ホストシステムの
/var/lib/pgsql/dataディレクトリーに保存されます。次のコマンドを入力して、使用可能な拡張機能をリスト表示します。
sudo podman exec -it postgresql_database /bin/bash -c 'echo "SELECT * FROM pg_available_extensions" | /opt/rh/rh-postgresql96/root/usr/bin/psql'
$ 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 Copied! Toggle word wrap Toggle overflow 出力例
name | default_version | installed_version | comment -----------+-----------------+-------------------+---------------------------------------- adminpack | 1.0 | | administrative functions for PostgreSQL ...
name | default_version | installed_version | comment -----------+-----------------+-------------------+---------------------------------------- adminpack | 1.0 | | administrative functions for PostgreSQL ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
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'
$ 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 Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
pg_trgmが作成されたことを確認します。sudo podman exec -it postgresql_database /bin/bash -c 'echo "SELECT * FROM pg_extension" | /opt/rh/rh-postgresql96/root/usr/bin/psql'
$ 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 Copied! Toggle word wrap Toggle overflow 出力例
extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition ---------+----------+--------------+----------------+------------+-----------+-------------- plpgsql | 10 | 11 | f | 1.0 | | pg_trgm | 10 | 2200 | t | 1.3 | | (2 rows)
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 Copied! Toggle word wrap Toggle overflow 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'
$ 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 Copied! Toggle word wrap Toggle overflow 出力例
ALTER ROLE
ALTER ROLECopy to Clipboard Copied! Toggle word wrap Toggle overflow システムで firewalld サービスがアクティブになっている場合は、次のコマンドを実行して、ファイアウォール経由で PostgreSQL ポートを使用できるようにします。
firewall-cmd --permanent --zone=trusted --add-port=5432/tcp
# firewall-cmd --permanent --zone=trusted --add-port=5432/tcpCopy to Clipboard Copied! Toggle word wrap Toggle overflow firewall-cmd --reload
# firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
postgresCLI パッケージがインストールされていない場合は、次のコマンドを入力してインストールします。yum install postgresql -y
# yum install postgresql -yCopy to Clipboard Copied! Toggle word wrap Toggle overflow psqlコマンドを使用して、PostgreSQL データベースへの接続をテストします。注記サービスにリモートでアクセスできることを確認するには、リモートシステムで次のコマンドを実行します。
psql -h localhost quaydb quayuser
# psql -h localhost quaydb quayuserCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow