沙箱环境

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

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

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


环境描述

默认的沙箱环境由 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.3.0
    admin_ip: 10.10.10.10
    region: default
    pg_version: 18

pigsty-sandbox

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 在云上创建沙箱。

当然,您也可以自己手工准备并置备这些节点。

本地沙箱(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 节点沙箱
make full26     # 使用 Ubuntu 26.04 创建 4 节点沙箱

Pigsty v4.3 统一使用 Vagrant Cloud 上的 cloud-image/* Box。下表列出 4 节点本地沙箱可使用的 VirtualBox/libvirt 镜像版本。

VirtualBox

系统Vagrant Boxamd64 版本arm64 版本
Rocky 8cloud-image/rocky-88.10.20240528.08.10.20240528.0
Rocky 9cloud-image/rocky-99.7.20251123.29.7.20251123.2
Rocky 10cloud-image/rocky-1010.1.20251116.010.1.20251116.0
Debian 11cloud-image/debian-1120260419.2453.020260419.2453.0
Debian 12cloud-image/debian-1220260413.2447.020260413.2447.0
Debian 13cloud-image/debian-1320260413.2447.020260413.2447.0
Ubuntu 22.04cloud-image/ubuntu-22.0420260320.0.020260320.0.0
Ubuntu 24.04cloud-image/ubuntu-24.0420260323.0.020260323.0.0
Ubuntu 26.04cloud-image/ubuntu-26.0420260421.0.020260421.0.0
AlmaLinux 8cloud-image/almalinux-88.10.202604148.10.20260414
AlmaLinux 9cloud-image/almalinux-99.7.202604149.7.20260414
AlmaLinux 10cloud-image/almalinux-1010.1.20260414.010.1.20260414.0

libvirt

系统Vagrant Boxamd64 版本arm64 版本
Rocky 8cloud-image/rocky-88.10.20240528.08.10.20240528.0
Rocky 9cloud-image/rocky-99.7.20251123.29.7.20251123.2
Rocky 10cloud-image/rocky-1010.1.20251116.010.1.20251116.0
Debian 11cloud-image/debian-1120260419.2453.020260419.2453.0
Debian 12cloud-image/debian-1220260413.2447.020260413.2447.0
Debian 13cloud-image/debian-1320260413.2447.020260413.2447.0
Ubuntu 22.04cloud-image/ubuntu-22.0420260320.0.020260320.0.0
Ubuntu 24.04cloud-image/ubuntu-24.0420260323.0.020260323.0.0
Ubuntu 26.04cloud-image/ubuntu-26.0420260421.0.020260421.0.0
AlmaLinux 8cloud-image/almalinux-88.10.202604148.10.20260414
AlmaLinux 9cloud-image/almalinux-99.7.202604149.7.20260414
AlmaLinux 10cloud-image/almalinux-1010.1.20260414.010.1.20260414.0

更多详情请参考 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 节点)

最后修改 2026-05-01: v4.3 docs update (25d20b5)