trio
三节点标准高可用配置模板,允许任意一台服务器宕机。
三节点是实现真正高可用的最小规格。trio 模板使用三节点标准 HA 架构,INFRA、ETCD、PGSQL 三个核心模块均采用三节点部署,允许任意一台服务器宕机。
配置概览
- 配置名称:
trio(位于ha/trio.yml) - 节点数量: 三节点
- 配置说明:三节点标准高可用架构,允许任意一台服务器宕机
- 适用系统:
el8,el9,d12,u22,u24 - 适用架构:
x86_64,aarch64 - 相关配置:
dual,full,safe
启用方式:
./configure -c ha/trio [-i <primary_ip>]
配置生成后,需要将占位 IP 10.10.10.11 和 10.10.10.12 修改为实际的节点 IP 地址。
配置内容
源文件地址:pigsty/conf/ha/trio.yml
all:
children:
#----------------------------------------------#
# INFRA 三节点高可用基础设施
#----------------------------------------------#
infra:
hosts:
10.10.10.10: { infra_seq: 1 }
10.10.10.11: { infra_seq: 2, repo_enabled: false }
10.10.10.12: { infra_seq: 3, repo_enabled: false }
vars:
patroni_watchdog_mode: off # 不在基础设施节点启用 watchdog
docker_enabled: true
#----------------------------------------------#
# ETCD 三节点高可用 DCS
#----------------------------------------------#
etcd:
hosts:
10.10.10.10: { etcd_seq: 1 }
10.10.10.11: { etcd_seq: 2 }
10.10.10.12: { etcd_seq: 3 }
vars:
etcd_cluster: etcd
etcd_safeguard: false
etcd_clean: true
#----------------------------------------------#
# MinIO 备份存储(单节点)
#----------------------------------------------#
minio: { hosts: { 10.10.10.10: { minio_seq: 1 } }, vars: { minio_cluster: minio } }
#----------------------------------------------#
# PostgreSQL 三节点高可用集群
#----------------------------------------------#
pg-meta:
hosts:
10.10.10.10: { pg_seq: 1, pg_role: primary }
10.10.10.11: { pg_seq: 2, pg_role: replica }
10.10.10.12: { pg_seq: 3, pg_role: replica , pg_offline_query: true }
vars:
pg_cluster: pg-meta
pg_users:
- { name: dbuser_meta , password: DBUser.Meta ,pgbouncer: true ,roles: [ dbrole_admin ] ,comment: pigsty admin user }
- { name: dbuser_view , password: DBUser.View ,pgbouncer: true ,roles: [ dbrole_readonly ] ,comment: read-only viewer }
pg_databases:
- { name: meta ,baseline: cmdb.sql ,comment: pigsty meta database ,schemas: [ pigsty ] ,extensions: [ { name: vector } ] }
pg_vip_enabled: true
pg_vip_address: 10.10.10.2/24
pg_vip_interface: eth1
vars:
version: v4.0.0
admin_ip: 10.10.10.10
region: default
node_tune: oltp
pg_conf: oltp.yml
infra_portal:
home : { domain: i.pigsty }
minio : { domain: m.pigsty ,endpoint: "${admin_ip}:9001" ,scheme: https ,websocket: true }
# 软件包配置
pg_version: 18
repo_modules: infra,node,pgsql
repo_remove: true
node_repo_modules: local
node_repo_remove: true
repo_packages: [ node-bootstrap, infra-package, infra-addons, node-package1, node-package2, pgsql-common ]
repo_extra_packages: [ pg18-main ]
#----------------------------------------------#
# PASSWORD
#----------------------------------------------#
grafana_admin_password: pigsty
grafana_view_password: DBUser.Viewer
pg_admin_password: DBUser.DBA
pg_monitor_password: DBUser.Monitor
pg_replication_password: DBUser.Replicator
patroni_password: Patroni.API
haproxy_admin_password: pigsty
minio_secret_key: S3User.MinIO
etcd_root_password: Etcd.Root
配置解读
trio 模板是 Pigsty 的标准高可用配置,提供真正的故障自动恢复能力。
架构说明:
- 三节点 INFRA:Prometheus/Grafana/Nginx 分布式部署
- 三节点 ETCD:DCS 多数派选举,容忍单点故障
- 三节点 PostgreSQL:一主两从,自动故障转移
- 单节点 MinIO:可按需扩展为多节点
高可用保障:
- ETCD 三节点可容忍一节点故障,保持多数派
- PostgreSQL 主库故障时,Patroni 自动选举新主
- L2 VIP 随主库漂移,应用无需修改连接配置
适用场景:
- 生产环境最小高可用部署
- 需要自动故障转移的关键业务
- 作为更大规模部署的基础架构
扩展建议: