full

四节点完整功能演示环境,带有两套 PostgreSQL 集群、MinIO、Redis 等组件示例

full 配置模板是 Pigsty 推荐的沙箱演示环境,使用四个节点部署两套 PostgreSQL 集群,用于测试和演示 Pigsty 各方面的能力。

Pigsty 大部分教程和示例都基于此模板的沙箱环境。


配置概览

  • 配置名称: full(位于 ha/full.yml
  • 节点数量: 四节点
  • 配置说明:四节点完整功能演示环境,带有两套 PostgreSQL 集群、MinIO、Redis 等组件示例
  • 适用系统:el8, el9, d12, u22, u24
  • 适用架构:x86_64, aarch64
  • 相关配置:triosafedemo

启用方式:

./configure -c ha/full [-i <primary_ip>]

配置生成后,需要修改其他三个节点的 IP 地址。


配置内容

源文件地址:pigsty/conf/ha/full.yml

all:
  children:

    # INFRA 基础设施
    infra:
      hosts:
        10.10.10.10: { infra_seq: 1 }

    # ETCD DCS 服务
    etcd:
      hosts:
        10.10.10.10: { etcd_seq: 1 }
      vars:
        etcd_cluster: etcd

    # MinIO 备份存储
    minio:
      hosts:
        10.10.10.10: { minio_seq: 1 }
      vars:
        minio_cluster: minio

    # PostgreSQL 集群: pg-meta(单节点)
    pg-meta:
      hosts:
        10.10.10.10: { pg_seq: 1, pg_role: primary }
      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.Viewer ,pgbouncer: true ,roles: [ dbrole_readonly ] ,comment: read-only viewer }
        pg_databases:
          - { name: meta ,baseline: cmdb.sql ,comment: pigsty meta database ,schemas: [ pigsty ] }
        pg_hba_rules:
          - { user: dbuser_view , db: all ,addr: infra ,auth: pwd ,title: 'allow grafana access' }
        pg_vip_enabled: true
        pg_vip_address: 10.10.10.2/24
        pg_vip_interface: eth1

    # PostgreSQL 集群: pg-test(三节点高可用)
    pg-test:
      hosts:
        10.10.10.11: { pg_seq: 1, pg_role: primary }
        10.10.10.12: { pg_seq: 2, pg_role: replica }
        10.10.10.13: { pg_seq: 3, pg_role: replica, pg_offline_query: true }
      vars:
        pg_cluster: pg-test
        pg_users:  [{ name: test , password: test , pgbouncer: true , roles: [ dbrole_admin ] }]
        pg_databases: [{ name: test }]
        pg_vip_enabled: true
        pg_vip_address: 10.10.10.3/24
        pg_vip_interface: eth1

    #----------------------------------------------#
    # Redis 示例
    #----------------------------------------------#
    redis-ms: # 主从模式
      hosts: { 10.10.10.10: { redis_node: 1 , redis_instances: { 6379: { }, 6380: { replica_of: '10.10.10.10 6379' } } } }
      vars: { redis_cluster: redis-ms ,redis_password: 'redis.ms' ,redis_max_memory: 64MB }

    redis-meta: # 哨兵模式
      hosts: { 10.10.10.11: { redis_node: 1 , redis_instances: { 26379: { } ,26380: { } ,26381: { } } } }
      vars:
        redis_cluster: redis-meta
        redis_password: 'redis.meta'
        redis_mode: sentinel
        redis_max_memory: 16MB
        redis_sentinel_monitor:
          - { name: redis-ms, host: 10.10.10.10, port: 6379 ,password: redis.ms, quorum: 2 }

    redis-test: # 原生集群模式
      hosts:
        10.10.10.12: { redis_node: 1 ,redis_instances: { 6379: { } ,6380: { } ,6381: { } } }
        10.10.10.13: { redis_node: 2 ,redis_instances: { 6379: { } ,6380: { } ,6381: { } } }
      vars: { redis_cluster: redis-test ,redis_password: 'redis.test' ,redis_mode: cluster, redis_max_memory: 32MB }


  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 }

    # MinIO 备份配置
    pgbackrest_method: minio
    node_etc_hosts: [ '10.10.10.10 i.pigsty sss.pigsty' ]

    # 软件包配置
    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

配置解读

full 模板是 Pigsty 的完整功能演示配置,展示了多种组件的协同工作。

组件概览

组件节点分布说明
INFRA节点1监控/告警/Nginx/DNS
ETCD节点1DCS 服务
MinIO节点1S3 兼容存储
pg-meta节点1单节点 PostgreSQL
pg-test节点2-4三节点高可用 PostgreSQL
redis-ms节点1Redis 主从模式
redis-meta节点2Redis 哨兵模式
redis-test节点3-4Redis 原生集群模式

适用场景

  • Pigsty 功能演示与学习
  • 开发测试环境
  • 评估高可用架构
  • Redis 不同模式对比测试

与 trio 的区别

  • 增加了第二套 PostgreSQL 集群(pg-test)
  • 增加了三种模式的 Redis 集群示例
  • 基础设施使用单节点(而非三节点)

注意事项

  • 此模板主要用于演示和测试,生产环境请参考 triosafe
  • 默认启用 MinIO 备份,如不需要可注释相关配置

最后修改 2025-12-21: udpate conf structure (2cd7d6e)