架构规划

使用多少个节点?为哪些模块配置高可用?如何根据可用的资源与业务需求进行规划?

Pigsty 采用 模块化架构,您可以像搭积木一样组合出自己想要的部署方案,并用简单的 声明式配置 表达您的意图。

常见方案

这里有一些常见的组合模式供您参考,您可以根据自己的需求进行进一步的定制与调整:

方案INFRAETCDPGSQLMINIO说明
单机部署(meta111单机部署 默认配置,经典方案
单机部署(slim11不要监控设施,只要数据库
基础设施(infra1只要监控基础设施
单机部署(rich1111单机 + 对象存储 + 本地仓库/扩展
多节点方案INFRAETCDPGSQLMINIO说明
双节点(dual1122节点半HA,可容忍坏特定一个
三节点(trio333标准3节点HA,可容忍坏一个
四节点(full111+3演示专用,1 INFRA/ETCD
生产部署(simu23nn2个INFRA,3个ETCD
大规模生产(自定义)35nn3个INFRA,5个 ETCD

使用什么样的架构规划方案,取决于您对数据库可靠性的要求,以及手头可用的资源。 通常来说,严肃的生产环境部署至少需要 3 个节点以实现 高可用配置。 如果您只有 2 个节点,则可以使用 半高可用配置


利弊权衡

  • 若要使用 Pigsty 的监控系统,则至少需要 1 个 INFRA 节点,生产部署通常使用 2 个,大规模部署 3 个。
  • 若要启用 PG 高可用,则至少需要 1 个 ETCD 节点,生产部署通常使用 3 个,大规模环境中 5 个,须奇数个。
  • 若要启用对象存储(MinIO),则至少需要 1MINIO 节点,严肃使用时通常使用 4+ 节点部署 MNMD 集群。
  • PG 生产集群通常至少为两节点主从配置;严肃场景通常使用 3 节点;高只读负载可以有更多从库(几十个)
  • 此外对于 PostgreSQL 来说,您还可以按需使用 离线实例,同步实例,备份集群,延迟集群等等高级配置。

单节点配置

最简单的配置,所有内容都在单个节点上运行,默认安装四个基本模块,通常用于 Demo,Devbox,或测试环境。

IDNODEPGSQLINFRAETCD
1node-1pg-meta-1infra-1etcd-1

如果为备份/PITR 配置了外部 S3 / MinIO 备份仓库 提供兜底的 RTO/RPO,此配置亦可用于普通标准的生产环境。

单节点配置有多种变体:


双节点配置

双节点配置 将启用数据库复制和 半高可用 能力,提供更好的数据冗余,以及有限的故障转移支持:

IDNODEPGSQLINFRAETCD
1node-1pg-meta-1 (replica)infra-1etcd-1
2node-2pg-meta-2 (primary)

双节点配置的高可用自动切换机制有限制,这种"半 HA"设置只能从特定节点故障中自动恢复:

  • 如果 node-1 故障,无自动故障转移:需要手动提升 node-2
  • 如果 node-2 故障,自动故障转移有效:node-1 自动提升

三节点配置

三节点模板 提供真正的基础高可用配置,可以容忍任意一个节点的故障,并从中自动恢复。

IDNODEPGSQLINFRAETCD
1node-1pg-meta-1infra-1etcd-1
2node-2pg-meta-2infra-2etcd-2
3node-3pg-meta-3infra-3etcd-3

四节点配置

Pigsty 沙箱环境 使用的 标准四节点配置

IDNODEPGSQLINFRAETCD
1node-1pg-meta-1infra-1etcd-1
2node-2pg-test-1
3node-3pg-test-2
4node-4pg-test-3

在这里我们出于演示目的,不配置 INFRA / ETCD 模块的高可用,您也可以对其进行进一步的调整

IDNODEPGSQLINFRAETCDMINIO
1node-1pg-meta-1infra-1etcd-1minio-1
2node-2pg-test-1infra-2etcd-2
3node-3pg-test-2etcd-3
4node-4pg-test-3

更多节点

如果您有着完善的虚拟化设施或充足的资源,完全可以 使用更多的节点,让每个模块都采用 独占式部署,从而获得最佳的可靠性,可观测性与性能表现。

IDNODEINFRAETCDMINIOPGSQL
110.10.10.10infra-1pg-meta-1
210.10.10.11infra-2pg-meta-2
310.10.10.21etcd-1
410.10.10.22etcd-2
510.10.10.23etcd-3
610.10.10.31minio-1
710.10.10.32minio-2
810.10.10.33minio-3
910.10.10.34minio-4
1010.10.10.40pg-src-1
1110.10.10.41pg-src-2
1210.10.10.42pg-src-3
1310.10.10.50pg-test-1
1410.10.10.51pg-test-2
1510.10.10.52pg-test-3
16……

最后修改 2026-01-06: update deploy docs (168f4c7)