沙箱环境

用于学习、测试与演示的 Pigsty 标准四节点沙箱环境

Pigsty 提供了一个标准的四节点 沙箱环境,用于学习、测试与功能演示。

沙箱使用固定的 IP 地址和预定义的身份标识符,便于复现各种演示用例。

pigsty-sandbox.jpg


环境描述

默认的沙箱环境由 4 个节点组成,默认使用配置文件 ha/full.yml

IDIP 地址节点名PostgreSQLINFRAETCDMINIO
110.10.10.10metapg-meta-1infra-1etcd-1minio-1
210.10.10.11node-1pg-test-1
310.10.10.12node-2pg-test-2
410.10.10.13node-3pg-test-3

沙箱的配置可以概括表示为以下配置文件:

all:
  children:
    infra: { hosts: { 10.10.10.10: { infra_seq: 1 } } }
    etcd:  { hosts: { 10.10.10.10: { etcd_seq:  1 } }, vars: { etcd_cluster: etcd } }
    minio: { hosts: { 10.10.10.10: { minio_seq: 1 } }, vars: { minio_cluster: minio } }

    pg-meta:
      hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } }
      vars:  { pg_cluster: pg-meta }

    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 }
      vars: { pg_cluster: pg-test }

  vars:
    version: v4.0.0
    admin_ip: 10.10.10.10
    region: default
    pg_version: 18

PostgreSQL 集群

沙箱带有一个位于 meta 节点上的单实例 PostgreSQL 集群 pg-meta

10.10.10.10 meta pg-meta-1
10.10.10.2  pg-meta          # 可选的 L2 VIP

沙箱中还有一个由三个实例组成的 PostgreSQL 高可用集群 pg-test,部署在另外三个节点上:

10.10.10.11 node-1 pg-test-1
10.10.10.12 node-2 pg-test-2
10.10.10.13 node-3 pg-test-3
10.10.10.3  pg-test          # 可选的 L2 VIP

两个可选的 L2 VIP 分别绑定在 pg-metapg-test 集群的主实例上。

基础设施

meta 节点上还部署有:

  • ETCD 集群:单节点 etcd 集群,为 PostgreSQL HA 提供 DCS 服务
  • MinIO 集群:单节点 minio 集群,提供 S3 兼容的对象存储服务
10.10.10.10 etcd-1
10.10.10.10 minio-1

创建沙箱

Pigsty 提供了开箱即用的模板,您可以使用 Vagrant 在本地创建沙箱,或使用 Terraform 在云上创建沙箱。

4节点的沙箱 当然,您也可以自己手工准备置备这些节点。

本地沙箱(Vagrant)

本地沙箱使用 Virtualbox/libvirt 创建本地虚拟机,可以在您的 Mac / PC 上免费运行。

运行完整的 4 节点沙箱,您的机器应至少拥有 4 核 CPU8GB 内存

cd ~/pigsty
make full       # 使用默认 RockyLinux 9 镜像创建 4 节点沙箱
make full9      # 使用 RockyLinux 9 创建 4 节点沙箱
make full12     # 使用 Debian 12 创建 4 节点沙箱
make full24     # 使用 Ubuntu 24.04 创建 4 节点沙箱

更多详情请参考 Vagrant 文档。

云沙箱(Terraform)

云沙箱使用公有云 API 创建虚拟机,可以轻松创建和销毁,按需付费,非常适合快速测试。

使用 spec/aliyun-full.tf 模板在阿里云上创建 4 节点沙箱:

cd ~/pigsty/terraform
cp spec/aliyun-full.tf terraform.tf
terraform init
terraform apply

更多详情请参考 Terraform 文档。


其他规格

除了标准的 4 节点沙箱,Pigsty 还提供了其他规格的环境:

单节点开发箱(meta)

最简单的 1 节点环境,用于快速上手、开发和测试:

make meta       # 创建单节点开发箱

双节点环境(dual)

2 节点环境,用于测试主从复制:

make dual       # 创建 2 节点环境

三节点环境(trio)

3 节点环境,用于测试基本高可用:

make trio       # 创建 3 节点环境

生产仿真环境(simu)

20 节点的大型仿真环境,用于模拟生产环境进行完整测试:

make simu       # 创建 20 节点生产仿真环境

该环境包含:

  • 3 个基础设施节点(meta1, meta2, meta3
  • 2 个 HAProxy 代理节点
  • 4 个 MinIO 节点
  • 5 个 ETCD 节点
  • 6 个 PostgreSQL 节点(2 个集群,每个 3 节点)