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 システムの設定方法を以下に示します。
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 successhaproxy サービスのセットアップ:
/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データベースのインストール/デプロイ: 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
-
ユーザー、パスワード、およびデータベースすべてが設定されている PostgreSQL データベースを起動します。コンテナーからのデータは、ホストシステムの
ファイアウォールを開く: firewalld サービスがシステムでアクティブな状態の場合には、以下のコマンドを実行して PostgreSQL ポートをファイアウォールで利用できるようにします。
# firewall-cmd --permanent --zone=trusted --add-port=5432/tcp success # firewall-cmd --reload successPostgreSQL 接続のテスト:
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