精简安装
如何只安装高可用 PostgreSQL 集群以及其最小依赖,不安装本地软件源与基础设施组件?
Module:
Pigsty 带有一整套服务于高可用 PostgreSQL 基础设施堆栈,但是这也完全是可选的,您可以通过 精简安装,只安装必要的 PostgreSQL 高可用集群组件。
概览
精简安装专注于纯粹的 HA-PostgreSQL 集群,仅安装所需的基本组件。
在精简安装模式下,不会有 Infra
模块,没有监控,没有 本地仓库
只有部分 NODE 模块的一部分,以及 ETCD 和 PGSQL 模块会被安装:您依然可以使用完整的 PGSQL 模块与 ETCD 模块的功能
在节点上会启用的 Systemd 服务有:
- patroni:必选,PostgreSQL 高可用与管控组件
- etcd:必选, Patroni 高可用依赖的配置中心
- pgbouncer:可选,数据库连接池
- vip-manager:可选,为主库绑定一个可选的二层VIP。
- haproxy:可选,提供自动路由的 服务 接入
- chronyd: 可选,同步节点时间
- tuned:可选,管理节点配置模板与系统内核参数
其中 patroni
和 etcd
是必选的组件,其他组件都是可选的,尽管如此,Pigsty 不建议关闭这些组件 —— 您可以留着它们不用。
配置
要执行精简安装,您需要额外配置几个选项开关,如 conf/slim.yml
所示:
all:
children:
infra: { hosts: { 10.10.10.10: { infra_seq: 1 } }, vars: { docker_enabled: true } }
etcd:
hosts:
10.10.10.10: { etcd_seq: 1 }
#10.10.10.11: { etcd_seq: 2 } # optional
#10.10.10.12: { etcd_seq: 3 } # optional
vars: { etcd_cluster: etcd }
pg-meta:
hosts:
10.10.10.10: { pg_seq: 1, pg_role: primary } # init one single-node pgsql cluster by default, with:
#10.10.10.11: { pg_seq: 2, pg_role: replica } # optional replica : bin/pgsql-add pg-meta 10.10.10.11
#10.10.10.12: { pg_seq: 3, pg_role: replica } # optional replica : bin/pgsql-add pg-meta 10.10.10.12
vars:
pg_cluster: pg-meta
pg_users: # define business users here: https://pigsty.cc/docs/pgsql/user/
- { name: dbuser_meta ,password: DBUser.Meta ,pgbouncer: true ,roles: [ dbrole_admin ] ,comment: pigsty default user }
pg_databases: # define business databases here: https://pigsty.cc/docs/pgsql/db/
- { name: meta ,comment: pigsty default database }
pg_hba_rules: # define HBA rules here: https://pigsty.cc/docs/pgsql/hba/#define-hba
- { user: dbuser_meta , db: all ,addr: world ,auth: pwd ,title: 'allow default user world access with password (not a good idea!)' }
node_crontab: # define backup policy with crontab (full|diff|incr)
- '00 01 * * * postgres /pg/bin/pg-backup full'
#pg_vip_address: 10.10.10.2/24 # optional l2 vip address and netmask
pg_extensions: # define pg extensions (345 available): https://pigsty.cc/ext/
- postgis timescaledb pgvector
vars:
version: v3.3.0 # pigsty version string
admin_ip: 10.10.10.10 # admin node ip address
region: default # upstream mirror region: default|china|europe
node_tune: tiny # use tiny template for NODE in demo environment
pg_conf: tiny.yml # use tiny template for PGSQL in demo environment
# minimal installation setup
node_repo_modules: node,infra,pgsql
nginx_enabled: false
dns_enabled: false
prometheus_enabled: false
grafana_enabled: false
pg_exporter_enabled: false
pgbouncer_exporter_enabled: false
pg_vip_enabled: false
同时在初始化安装时,您应该使用 slim.yml
剧本进行安装,而不是默认的 install.yml
。
./slim.yml
然后,配置指定的节点上便会安装最小化的 PostgreSQL 高可用集群组件。