3.3. 设置 HAProxy 负载均衡器和 PostgreSQL 数据库
使用以下步骤设置 HAProxy 负载均衡器和 PostgreSQL 数据库。
前提条件
- 已安装 Podman 或 Docker CLI。
流程
在前两个系统上,
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 服务的系统和端口。以下是默认值和添加的 frontend 和 backend 设置示例: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的权限,并为他们授予超级用户角色,授予用户对数据库的不受限制的访问权限: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