沙箱环境

介绍Pigsty的沙箱环境,一个配置规格、对象标识符、与默认数据库预先确定的环境,用于教学演示之用。

Pigsty支持使用 本地沙箱云端沙箱 两种方式,可用于快速在本机或云端准备标准的1/4节点演示环境。

尽管安装Pigsty已经非常简单了,但是搭建满足要求虚拟机仍然是比较费事的,您可能需要用到各类虚拟机软件。

因此Pigsty提供了沙箱环境,进一步免除用户准备环境的烦恼。完整地创建并跑通沙箱安装部署流程,对于在生产环境中部署有Pigsty 很大的帮助。

沙箱环境简介

沙箱环境是一个配置规格、对象标识符、与默认数据库预先确定的环境,无论是本地版还是云端版都保持一致。

沙箱环境使用固定的IP地址,以便于演示说明,沙箱的元节点IP地址固定为:10.10.10.1010.10.10.10 也是所有配置文件模板中元节点IP地址的占位符,执行 配置 时,该IP地址会被作为元节点的实际IP地址

沙箱环境 - 图1

您可以使用单节点沙箱,这种部署下,只有一个元节点meta,节点上部署有完整的基础设施,和一个单例Postgres数据库pg-meta

  • meta 10.10.10.10 pg-meta.pg-meta-1

单节点沙箱则适合用于个人开发、实验、学习;作为数据分析与可视化的环境;以及设计、演示、分发交互式数据应用,四节点沙箱可以完整演示Pigsty的功能,充分探索高可用架构与监控系统的能力,请您自行按需选择。

在四节点沙箱环境中,有三个额外的节点,与一个额外一套三节点PostgreSQL集群 pg-test

  • node-1 10.10.10.11 pg-test.pg-test-1
  • node-2 10.10.10.12 pg-test.pg-test-2
  • node-3 10.10.10.13 pg-test.pg-test-3

同时,沙箱环境还会使用以下两个IP地址与两条静态DNS记录,用于接入数据库集群。

  • 10.10.10.2 pg-meta
  • 10.10.10.2 pg-test

Pigsty提供了基于Vagrant的本地沙箱(使用Virtualbox拉起本地虚拟机),以及基于Terraform的云端沙箱(使用云厂商API创建虚拟机)。

  • 本地沙箱可以在普通Mac/PC上运行,不需要任何费用,但若想在本机运行完整的4节点沙箱环境,您的Mac/PC应当至少有 4C/8G的硬件规格。

  • 云端沙箱可以方便地向他人展示与共享,使用前需要您创建一个云账号,虚拟机资源按需创建使用,用后可以一键销毁,会有一些费用(通常非常便宜,一天几块钱)

沙箱环境部署

Pigsty设计了一个标准的,4节点的演示教学环境,称为沙箱环境,使用Vagrant或Terraform快速在本机或公有云上拉起所需的四台虚拟机资源,并进行部署测试。跑通流程后稍作修改,便可用于生产环境部署

沙箱环境 - 图2]

以默认的沙箱环境为例,假设您已经在10.10.10.10元节点上完成单机Pigsty的安装:

  1. ./infra.yml # 在沙箱环境的 10.10.10.10 meta 机器上,完成完整的单机Pigsty安装

主机初始化

现希望将三个节点:10.10.10.11, 10.10.10.12, 10.10.10.13 纳入管理,则可使用 nodes.yml 剧本:

  1. ./nodes.yml -l pg-test # 初始化集群pg-test包含的三台机器节点(配置节点+纳入监控)

执行完毕后,这三台节点已经带有DCS服务,主机监控与日志收集。可以用于后续的数据库集群部署。详情请参考节点 配置剧本

PostgreSQL部署

使用 pgsql.yml 剧本,可以在这三台节点上初始化一主两从的高可用PostgreSQL数据库集群 pg-test

  1. ./pgsql.yml -l pg-test # 初始化高可用PGSQL数据库集群pg-test

部署完成后,即可从监控系统 中看到新创建的PostgreSQL集群。

详情请参考:PgSQL数据库集群 配置定制剧本

Redis部署

除了标准的PostgreSQL集群,您还可以部署各种其他类型的集群,甚至其他类型的数据库。

例如在沙箱中部署Redis,可以使用Redis数据库集群 配置剧本

  1. ./nodes.yml # 配置所有用于安装Redis的节点
  2. ./redis.yml # 在所有节点上按照配置声明Redis

MatrixDB部署

例如在沙箱中部署开源数据仓库MatrixDB(Greenplum7),可以使用以下命令:

  1. ./configure -m mxdb # 使用沙箱环境MatrixDB配置文件模板
  2. ./download matrix # 下载MatrixDB软件包并构建本地源
  3. ./infra.yml -e no_cmdb=true # 如果您准备在meta节点上部署 MatrixDB Master,添加no_cmdb选项,否则正常安装即可。
  4. ./nodes.yml # 配置所有用于安装MatrixDB的节点
  5. ./pigsty-matrixdb.yml # 在上述节点上安装MatrixDB

最后修改 2022-05-27: init commit (1e3e284)