ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Pigsty 配置模板体系全解:从单机 meta 到多节点 HA 与 12 类内核的 IaC 实战指南

Pigsty 配置模板体系全解:从单机 meta 到多节点 HA 与 12 类内核的 IaC 实战指南 数据库运维云原生高可用监控【免费下载链接】pigstyEnterprise-Grade OSS PostgreSQL Distribution with HA, PITR, IaC, Monitor, 12 kernel forks and 575 PG extensions. Best-of-breed products integrated as a platform. Self-host Postgres like a Pro!项目地址https://gitcode.com/GitHub_Trending/pi/pigsty点击查看免费下载导读本文围绕 Pigsty 的conf配置模板目录展开系统讲解 Pigsty 的配置即代码IaC落地方式从./configure的交互式配置生成流程到单节点主模板、异构 PostgreSQL 内核模板、多节点高可用HA模板、应用App模板与演示Demo模板的完整选择与使用指南。读完本文你将掌握如何通过./configure -c conf一键生成适用于单机、双机、三机乃至 20 节点生产环境的pigsty.yml理解meta、rich、slim、mssql、polar、ha/trio、app/supa等模板各自的设计意图、关键参数与适用场景并能结合仓库中的 configure 脚本源码理解配置生成的底层机制。配置模板与 configure 机制conf目录存放的是 Pigsty 的配置模板Config Template它们会在./configure流程中被使用。configure 是一个交互式 Bash 脚本负责根据本机环境探测结果与用户指定的模板生成最终的pigsty.yml配置文件。configure 的用法与参数配置模板通过./configure -c conf指定其中conf是相对于conf目录的路径可带可不带.yml后缀。脚本头部完整声明了支持的命令行参数见 configure参数说明默认行为-c, --conf confname指定配置模板默认使用meta-i, --ip ip指定主节点meta nodeIP自动探测-s时跳过-v, --version pgver指定 PostgreSQL 主版本模板内置如 18-r, --region region镜像区域default|china|europe自动探测GFW 检测-o, --output file输出配置文件路径默认pigsty.yml-s, --skip跳过 IP 探测使用占位符10.10.10.10-x, --proxy从环境变量写入代理配置关闭-n, --non-interactive非交互模式交互模式-p, --port port指定 SSH 端口默认 22-g, --generate为所有默认密码生成随机值不生成未指定模板时Pigsty 默认使用conf/meta.yml单节点模板。若指定了不存在的模板脚本会报错config conf/mode.yml not exists并以退出码 11 终止configure。configure 的内部工作流从 configure 的主流程可以看到configure 依次执行如下探测与生成步骤区域检测通过探测google.com与pigsty.cc的可达性判断是否处于 GFW 之后自动选择china或default镜像区域configure版本校验-v指定的 PostgreSQL 版本必须是14 15 16 17 18 19之一否则退出configure环境探测检查内核Linux/Darwin、架构x86_64/aarch64、包管理器rpm 系 dnf/yum/zypper 或 deb 系 apt、发行版版本与 sudo/SSH 免密能力IP 探测优先使用-i参数其次自动探测多 IP 时交互式询问用户非交互模式下遇到歧义会报错退出configure模板落盘将conf/mode.yml以install -m 0600权限 600复制为pigsty.yml并执行系列sed替换将占位 IP10.10.10.10替换为探测到的primary_ip当 CPU 核数小于 4 时自动把pg_conf: oltp.yml降级为tiny.yml、node_tune: oltp降级为tinyconfigure根据-r区域替换region中国区域自动启用 Docker 镜像加速与 PIP 镜像-x时将HTTP_PROXY/HTTPS_PROXY/ALL_PROXY/NO_PROXY写入proxy_env-v时 upsertpg_version并将pg18-扩展包名批量改写为pgver-PG 19 会额外加入beta软件源PG 版本 17 或系统支持 C.UTF-8 时追加pg_locale: C.UTF-8等区域设置-g时为 8 组前缀键如grafana_admin_password、pg_admin_password、patroni_password等及 7 组全局占位口令如DBUser.Meta、S3User.Backup生成 24 位随机字母数字密码configure。配置生成完毕后脚本提示检查配置并修改密码然后按./deploy.yml或./deploy.yml -i output继续部署。单节点主模板从全功能到极简主模板都是 1 节点配置可在单机上完成 Pigsty 安装模板定位meta.yml默认模板1 节点在线安装含 INFRA、NODE、PGSQL、ETCD、MINIO、DOCKER、APP 模块与 postgis、pgvector 基础扩展rich.yml功能增强版含本地软件源local repo、单节点 MinIO 备份仓库、更丰富的注释与示例slim.yml极简安装不装监控与 infra只有原生 PostgreSQLfat.yml极端功能全开安装全部扩展infra.yml只装 VictoriaMetrics 监控等 infra 组件不装 PostgreSQLvibe.yml1 节点 vibe coding devboxpgsql 各类开发工具mongo.yml1 节点 MongoDB 兼容栈FerretDB / DocumentDBdocker.yml1 节点 Docker 编码环境meta.yml默认单节点模板精读meta.yml 是 Pigsty 的默认模板其拓扑如下pg-meta单节点 PostgreSQL 集群10.10.10.10: { pg_seq: 1, pg_role: primary }定义了一个 primary 实例注释中展示了如何追加replica只读副本与offlineETL/交互查询离线实例节点这是从 1 节点平滑扩展为多节点的关键入口infra监控与告警基础设施repo_enabled: false1 节点模式下禁用本地仓库etcd为 Patroni 提供 HA 共识的 DCS 服务app默认启动 pgadmin 应用app: pgadmin管理员账号adminpigsty.cc / pigsty。模板的核心业务建模体现在以下三组参数pg_extensions[ postgis, pgvector ]声明要安装的扩展包pg_users业务用户定义name是唯一必填字段。示例定义了两个用户dbuser_metapigsty 管理员dbrole_admin角色启用 pgbouncer与dbuser_view只读用户dbrole_readonly角色pg_databases业务数据库定义meta库以files/cmdb.sql为 baseline 初始化创建pigstyschema并安装postgis、vector扩展。全局参数区定义了version: v4.5.0、admin_ip、region、proxy_env含默认no_proxy列表、infra_portal通过 Nginx 门户暴露i.pigsty与adm.pigsty、node_tune: oltp节点调优规格可选 oltp/olap/tiny/crit、pg_conf: oltp.ymlPostgreSQL 调优规格、pg_version: 18以及一组默认口令。pg_crontab中00 01 * * * /pg/bin/pg-backup full定义了每日凌晨 1 点的全量备份任务。meta.yml 还注释保留了扩展与备份配置的完整骨架pgbackrest_method: minio与pgbackrest_repo支持切换到 MinIO 或阿里云 OSS 等 S3 兼容对象存储做远程备份并支持block: y块级增量备份、bundle小文件打包、cipher_type: aes-256-cbcAES 加密与按数量/按时间两种保留策略meta.yml。rich.yml功能增强版精读rich.yml 在 meta.yml 基础上做了四方面增强几乎全量扩展pg_extensions: [ postgis, timescaledb, pgvector, pg_wait_sampling ]并配置pg_libs: timescaledb, pg_stat_statements, auto_explain, pg_wait_sampling预加载全局的repo_extra_packages注释中列出pg18-time/gis/rag/fts/olap/feat/lang/type/util/func/admin/stat/sec/fdw/sim/etl共 16 组扩展类别本地软件源repo_enabled: true构建本地 repo 并从其中安装所有软件适合离线或内网环境内置 MinIO 备份仓库定义minio集群与 3 个 S3 用户pgbackrest/s3user_meta/s3user_data对应pgsql/meta/data三种策略并把pgbackrest_method切换为minio形成本地 MinIO 云 S3三仓库备份方案更完整的注释示例pg_users中逐个注解了password/pgbouncer/comment/roles/state/login/superuser/createdb/createrole/inherit/replication/bypassrls/connlimit/expire_in/parameters/pool_mode等字段含义并给出 PG16 增强角色语法admin: true授予 ADMIN OPTION 等pg_databases中注解了baseline/schemas/extensions/owner/template/strategy/encoding/locale/locale_provider/icu_locale/tablespace/is_template/revokeconn/register_datasource/pool_*等完整字段。rich.yml 还包含一个注释态 3 节点pg-test集群示例含pg_services自定义服务standby 服务把 5435 端口路由到同步副本的 pgbouncer以及一个 1 节点 Redis 主从示例redis-msredis_node: 16380: { replica_of: 10.10.10.10 6379 }便于后续用./redis.yml直接拉起。slim.yml无监控极简安装slim.yml 只包含etcd与pg-meta两个集群明确注释不安装监控与 infra只有原生 PostgreSQL。它是轻量实验、嵌入式场景的首选结构比 meta 更精简无 infra、无 minio、无 app仅保留 pgsql 核心参数与默认口令区。异构内核模板一个 Pigsty12 类 PostgreSQL 发行版Pigsty 的一个核心特色是支持多种 PostgreSQL 内核kernel fork同类模板共用同一套基础设施仅通过pg_mode、pg_packages与专用参数切换内核模板内核定位pgsql.ymlVanilla PostgreSQL原生内核基础功能14~18mssql.ymlBabelfishSQL Server 线协议兼容17polar.ymlPolarDB PGAurora / RAC 风味17ivory.ymlIvorySQLOracle 语法兼容18mysql.ymlOpenHaloMySQL 兼容14pgtde.ymlPercona PG TDE透明数据加密18oriole.ymlOrioleDBOLTP 增强存储引擎17agens.ymlAgensGraph图数据库工作负载17pgedge.ymlpgEdge分布式 PostgreSQL18supabase.ymlSupabase 配置Supabase 自托管15~18pg19.ymlPostgreSQL 19 betaPGDG testing 源 最小运行时mssql.ymlBabelfish 内核模板mssql.yml 用于部署 Babelfish 内核——一个带 SQL Server 兼容能力的 PostgreSQL 17/18 fork。关键配置如下pg_mode: mssql开启 MSSQL 兼容模式pg_packages: [ babelfish, pgsql-common, sqlcmd ]替换内核并附带sqlcmd工具pg_libs: babelfishpg_tds, pg_stat_statements, auto_explain预加载 TDS 监听器使 PG 直接监听 SQL Server 协议业务库mssql以 files/mssql.sql 为 baseline安装uuid-ossp与babelfishpg_common/tsql/tds/money系列扩展并设置babelfishpg_tsql.migration_mode: multi-db核心用户dbuser_mssql是 superuser 与库 ownerpg_hba_rules明确要求对 mssql 用户使用md5认证pg_default_services将 primary/replica 服务分别路由到5433/5434 - 1433MSSQL 默认端口default/offline服务则仍走5436/5438 - postgres实现同集群同时暴露 PG 与 SQL Server 两种接入方式。polar.ymlPolarDB 内核模板polar.yml 部署基于 PG 17 的 PolarDB PG forkRAC 风味pg_mode: polar、pg_packages: [ polardb, pgsql-common ]。其特殊之处在于监控需排除polardb_admin库pg_exporter_exclude_database: template0,template1,postgres,polardb_admin通过pg_default_roles重定义系统角色体系PolarDB 要求replicator是 superuser 才能做复制因此示例中postgres与replicator均标记为superuser: true同时额外定义了dbuser_dbasuperuser 会话级 pgbouncer与dbuser_monitor角色。其余内核模板ivory/mysql/pgtde/oriole/agens/pgedge/supabase/pg19结构类似差异集中在pg_mode、pg_packages、pg_libs与扩展列表上均可通过./configure -c 模板名直接选用。例如supabase.yml是 Supabase 自托管的完整流水线模板./configure -c supabase生成配置后依次执行./deploy.yml装 Pigsty pgsql minio、./docker.yml装 Docker与./app.yml用 Docker Compose 拉起 Supabase 全套服务。HA 模板多节点高可用部署多节点 HA 模板在 conf 的ha/子目录下通过./configure -c ha/name使用模板节点数定位ha/dual.yml2双节点半 HAha/trio.yml3三节点标准 HAha/full.yml4四节点标准部署ha/safe.yml4安全增强含延迟从库ha/citus.yml13Citus 分布式集群ha/simu.yml20生产仿真ha/dual.yml双节点故障模型ha/dual.yml 面向只有两台机器的场景.10为 admin 节点承担 infra 与 etcd.11为 pgsql primary。模板头部明确注释了双节点下的故障语义若.11宕机由于 etcd 仍存活.10会接管成为 primary若.10宕机仅 etcd 或仅 pgsql 故障.11作为 primary 仍可继续服务若 etcd 与 pgsql 同时不可用如整节点宕机primary 会主动降级自身。集群启用了pg_vip_enabled: true与pg_vip_address: 10.10.10.2/24通过 L2 VIP 绑定到当前 primary业务侧通过 VIP 访问实现故障切换无感知。ha/trio.yml三节点标准 HAha/trio.yml 是生产推荐的三节点拓扑3 infra 3 etcd 3 pgsql 1 minio。infra 三节点中只有.10启用 reporepo_enabled: false标记其余节点并设置patroni_watchdog_mode: off避免对 infra 节点做 fencingetcd 三节点构成奇数成员 DCS满足共识要求注释建议生产用 3 或 5 节点pg-meta 三节点.10primary、.11replica、.12replica 且pg_offline_query: true离线可查询副本承载报表/ETL 流量minio 单节点作为备份仓库node_etc_hosts注册i.pigsty与sss.pigsty域名pgbackrest_repo配置 local minio 双仓库保留策略为本地按数量保留 2 份、MinIO 按时间保留 14 天并启用 AES-256-CBC 加密。ha/citus.yml13 节点分布式集群ha/citus.yml 定义了一个 6 工作组的 Citus 分布集群拓扑pg-citus0协调节点10.10.10.10VIP 10.10.10.19pg-citus1~6六个工作组每组 2 节点VIP 依次为 10.10.10.29/39/49/59/69/79并使用本地 repo 引导集群启动。App 模板随附的应用软件栈conf/app/下的模板用于以 Docker 方式部署常见软件通过./configure -c app/name生成配置、再以./app.yml启动模板应用app/supa.yml1 节点 Supabaseapp/odoo.ymlOdoo ERP 系统app/dify.ymlDify AI 工作流系统app/electric.ymlElectric 同步引擎app/mattermost.ymlMattermost 团队消息应用app/teable.ymlTeable 无代码数据库应用app/maybe.ymlMaybe 个人财务应用app/jumpserver.ymlJumpServer 堡垒机 / PAMapp/registry.ymlDocker Registry 镜像仓库以 app/supa.yml 为例其完整启动流程为./configure -c supabase→./deploy.yml安装 Pigsty、pgsql、minio→./docker.yml安装 Docker→./app.yml以 Docker Compose 拉起 Supabase支持 el8/el9/u22/u24/u26/d12 平台与 PG 15~18。仓库中对应应用的具体编排文件位于 app 目录例如 app/supabase/docker-compose.yml。Demo 模板场景化参考配置除主模板外conf/demo/提供一组针对不同场景的演示与参考配置模板用途demo/bare.yml最简 1 节点起步配置demo/el.ymlEL 8/9 系统全默认参数配置demo/debian.ymlDebian/Ubuntu 系统全默认参数配置demo/kernel.yml10 节点内核矩阵演示单文件demo/remote.yml监控远程 pgsql 集群或 RDS PG 的示例demo/redis.ymlRedis 集群示例demo/minio.yml3 节点 MinIO 集群示例demo/saas.yml全扩展 1 节点功能模板demo/wool.yml低成本阿里云 ECS 演示模板demo/demo.yml公共演示环境配置文件demo/mysql.yml实验性 MySQL 8.4 单机 3 节点 InnoDB Cluster其中两个模板颇具实战价值demo/remote.yml——监控远端 RDS该模板展示了如何用 Pigsty 监控不在本机部署的远程 PostgreSQL如云 RDS。方法是在infra组的pg_exporters中为每个远端实例分配一个本地空闲端口作为 key如20001并声明pg_cluster、pg_seq、pg_host、pg_port可覆盖pg_exporter_url直接给连接串或pg_monitor_username/password通过pg_databases把远端库注册为 Grafana 数据源demo/remote.yml。示例中包含阿里云 PolarDBpxx.polardbpg.rds.aliyuncs.com与 RDS PG 的监控配置并可开启pg_exporter_auto_discovery自动发现数据库。这正是 Pigsty 从部署平台延伸为统一监控平台的典型用法。demo/kernel.yml——内核矩阵单文件定义 10 节点同时承载 Vanilla PGCitus、IvorySQL、Babelfish 等不同内核集群每个集群通过pg_mode、pg_packages、pg_libs与扩展组合独立声明如pg-citus集群安装citus并在库内启用citus, postgis, vector扩展便于在一个环境里横向对比各内核行为。模板选型与最佳实践综合 conf/README.md 与上述模板源码可归纳以下选型建议单机快速上手无特殊要求用默认meta要离线/内网部署与备份仓库选rich只要裸 PostgreSQL 选slim只建监控栈选infra内核切换按业务兼容性需求选mssqlSQL Server、ivoryOracle、polar云原生 RAC、pgedge分布式等无需改动基础设施层高可用两机用ha/dual注意其故障语义限制生产至少三机用ha/trio需要分布式用ha/citus安全敏感场景参考ha/safe应用扩展在已有 pgsql 基础上用app/*模板与 app.yml 拉起 Supabase、Dify、Odoo 等应用后期扩节点单节点模板中的注释已给出追加replica/offline节点的写法可先以 1 节点起步再逐步扩容也可以从一开始就用 HA 模板规划。所有模板生成配置文件后都应在部署前仔细检查密码等敏感项——./configure -g可一次性生成随机口令这也是生产环境的推荐做法。整个配置体系以 conf/README.md 为索引、以 configure 脚本为生成引擎构成了 Pigsty 完整、可复现、模板化的 IaC 部署骨架。赞分享数据库运维云原生高可用监控【免费下载链接】pigstyEnterprise-Grade OSS PostgreSQL Distribution with HA, PITR, IaC, Monitor, 12 kernel forks and 575 PG extensions. Best-of-breed products integrated as a platform. Self-host Postgres like a Pro!项目地址https://gitcode.com/GitHub_Trending/pi/pigsty点击查看免费下载相关推荐Pigsty 完整指南企业级 PostgreSQL 发行版的 HA、PITR 与 IaC 实战Pigsty 完整指南企业级 PostgreSQL 发行版的 HA、PITR 与 IaC 实战 项目定位PostgreSQL In Great STYle数据库运维云原生高可用监控ramsey/uuid 异常体系全解析从 UuidExceptionInterface 到 12 个内置异常类的实战指南ramsey/uuid 异常体系全解析从 UuidExceptionInterface 到 12 个内置异常类的实战指南 导读 在 PHP 世界最流行的 UU后端G6 节点体系完全指南内置节点、数据模型与配置优先级机制G6 节点体系完全指南内置节点、数据模型与配置优先级机制 节点Node是图可视化中最基础、最核心的元素之一。本文以 G6JavaScript 图可视化框数据可视化前端图表库上一篇Keras.js可视化技术终极指南深入解析CAM热力图与模型解释性分析下一篇Ray 运行时环境Runtime Environments完全指南处理集群依赖、包与文件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表