元节点
元节点即完整安装Pigsty,带有管理功能的节点,部署有完整的基础设施组件。
元节点即完整安装Pigsty,带有管理功能的节点,部署有完整的基础设施组件。
当您在某节点上执行 ./configure
命令时,当前节点会被默认作为元节点,填入配置文件 meta
分组中。
在每套环境中,Pigsty最少需要一个元节点,该节点将作为整个环境的控制中心。元节点负责各种管理工作:保存状态,管理配置,发起任务,收集指标,等等。整个环境的基础设施组件,Nginx,Grafana,Prometheus,Alertmanager,NTP,DNS Nameserver,DCS都将部署在元节点上。
复用元节点
元节点亦可复用为普通数据库节点,在元节点上默认运行有名为 pg-meta
的PostgreSQL数据库集群。提供额外的扩展功能:CMDB,巡检报告,扩展应用,日志分析,数据分析与处理等
以Pigsty附带的四节点沙箱环境为例,组件在节点上的分布如下图所示:
沙箱由一个元节点与四个普通节点组成,这里元节点也被复用为一个普通节点。沙箱内部署有一套基础设施与两套数据库集群。 meta
为元节点,部署有基础设施组件,同时被复用为普通数据库节点,部署有单主数据库集群pg-meta
。 node-1
,node-2
,node-3
为普通数据库节点,部署有数据库集群pg-test
。
元节点上的服务
元节点上默认运行的服务如下所示:
组件 | 端口 | 说明 | 默认域名 |
---|---|---|---|
Nginx | 80 | 所有Web服务的入口,文件服务器 | pigsty |
Yum | 80 | 本地YUM软件源 | yum.pigsty |
Grafana | 3000 | 监控系统/可视化平台 | g.pigsty |
AlertManager | 9093 | 报警聚合管理组件 | a.pigsty |
Prometheus | 9090 | 监控时序数据库 | p.pigsty |
Loki | 3100 | 实时日志收集基础设施 | l.pigsty |
Consul (Server) | 8500 | 分布式配置管理与服务发现 | c.pigsty |
Docker | 2375 | 运行无状态服务的容器平台 | - |
PostgreSQL | 5432 | Pigsty CMDB | - |
Ansible | - | 用于发起管理命令的组件 | - |
Consul DNS | 8600 | Consul提供的DNS服务(可选) | - |
Dnsmasq | 53 | DNS域名解析服务器(可选) | - |
NTP | 123 | NTP时间服务器(可选) | - |
Pgbouncer | 6432 | Pgbouncer连接池服务 | - |
Patroni | 8008 | Patroni高可用组件 | - |
Haproxy Primary | 5433 | 集群读写服务(主库连接池)代理 | - |
Haproxy Replica | 5434 | 集群只读服务(从库连接池)代理 | - |
Haproxy Default | 5436 | 集群主库直连服务(用于管理,DDL/DML变更) | - |
Haproxy Offline | 5438 | 集群离线读取服务(直连离线实例,用于ETL,交互式查询) | - |
Haproxy Admin | 9101 | Haproxy监控指标与流量管理页面 | - |
PG Exporter | 9630 | Postgres监控指标导出器 | - |
PGBouncer Exporter | 9631 | Pgbouncer监控指标导出器 | - |
Node Exporter | 9100 | 机器节点监控指标导出器 | - |
Promtail | 9080 | 实时收集节点与数据库日志 | - |
vip-manager | - | 将VIP绑定至集群主库上 |
元节点与DCS
默认情况下,元节点上将部署元数据库 (Consul 或 Etcd),用户也可以使用已有的外部DCS集群。如果将DCS部署至元节点上,建议在生产环境使用3个元节点,以充分保证DCS服务的可用性。DCS外的基础设施组件都将以对等副本的方式部署在所有元节点上。元节点的数量要求最少1个,推荐3个,建议不超过5个。
DCS用于支持数据库高可用的故障检测与选主,在默认模式停止DCS服务会导致所有数据库集群拒绝写入,因此请务必确保DCS服务的可靠性(增加元节点数量,或使用外部独立维护的高可用DCS集群)
多个元节点
复数个元节点是可能的,通常一个元节点足矣,两个元节点可以互为备份,三个元节点自身便足以部署生产级DCS Server集群。
本着开箱即用的原则,Pigsty默认在所有元节点上部署DCS Server。但如果单纯是为了追求DCS Server集群的高可用而使用超过3个管理节点并没有太大的意义。您可以使用一个外部维护管理的,3~5节点的DCS集群来保证DCS服务可用性。
元节点的特征是节点地址配置于配置文件的 all.children.meta.host
分组中,带有meta_node: true
标记。在 configure 过程中,执行安装的当前节点会被配置为元节点,复数个元节点则需要手工配置,可参考三管理节点样例配置文件: pigsty-dcs3.yml。
如果您没有使用任何外部DCS集群服务作为仲裁者,那么有意义的高可用最少需要3个节点。如果您只有两个节点,建议主库故障时人工介入以避免脑裂出现。
最后修改 2022-05-27: init commit (1e3e284)