跳转到主要内容

架构

节点类型、架构与核心概念
节点类型、架构与核心概念

“节点”是可通过 SSH 访问、 并提供裸 Linux 环境的资源。它可以是物理机、虚拟机,也可以是带有 systemdsudosshd 的类操作系统容器。

Pigsty 中有三类节点;在单节点部署中,它们是同一台机器。

节点类型 说明
管理节点 安装 Pigsty 并发出管理命令的节点
基础设施节点 安装 INFRA 模块的节点
普通节点 所有由 Pigsty 管理的节点,包括管理与基础设施节点

示例

下面的四节点沙箱包含四个普通节点,其中 10.10.10.10 同时是基础设施节点和管理节点。

all:
  children:
    infra:   { hosts: { 10.10.10.10: { infra_seq: 1 } } }  # <--- 标记为基础设施节点
    etcd:    { hosts: { 10.10.10.10: { etcd_seq: 1 } }, vars: { etcd_cluster: etcd } }
    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:
    admin_ip: 10.10.10.10    # <--- 标记管理节点

普通节点

普通节点默认启用以下组件:

组件 端口 说明 默认状态
node_exporter 9100 节点监控指标导出器 启用
haproxy 9101 HAProxy 管理与指标端口 启用
promtail 9080 日志采集代理 启用

以下组件为可选项,可通过参数启用:

组件 端口 说明 默认状态
docker 9323 容器服务及指标端口 禁用
keepalived - 管理节点集群二层 VIP 禁用
keepalived_exporter 9650 监控 Keepalived 状态 禁用

管理节点

管理节点是最先安装 Pigsty、并发出全部控制命令的节点。 每套 Pigsty 部署只有一个管理节点,由 admin_ip 指定;配置时会将其设置为管理节点的主 IP。

保护管理节点访问

管理节点需要通过免密 sshsudo 管理其他节点。未经授权的访问风险 很高,请妥善保护管理节点。

管理节点是最先安装 Pigsty 的节点

管理节点用于向其他节点发出命令,通常与第一个 INFRA 节点重合。

本地笔记本也可作为管理节点

可以在本地笔记本或 Mac 上准备 Pigsty 与 Ansible,并从本机发出管理命令。


基础设施节点

一套部署可以有一个或多个 INFRA 节点;生产环境建议至少两个。配置清单中的 infra 分组指定这些节点,并在其上安装 INFRA 模块。

组件 端口 域名 说明
nginx 80 h.pigsty Web 服务入口与 YUM/APT 仓库
alertmanager 9059 a.pigsty 告警聚合与投递
prometheus 9058 p.pigsty 监控时序数据库
grafana 3000 g.pigsty 可视化平台
loki 3100 - 日志收集服务器
pushgateway 9091 - 一次性任务指标入口
blackbox_exporter 9115 - 黑盒探测
dnsmasq 53 - DNS 服务
chronyd 123 - NTP 服务
ansible - - 执行 Playbook

PGSQL 节点

安装 PGSQL 模块的节点称为 PGSQL 节点。节点与 PostgreSQL 实例按 1:1 部署;node_id_from_pg 可让 节点复用 PostgreSQL 实例身份。

组件 端口 说明 状态
postgres 5432 由 Patroni 管理的 PostgreSQL 服务 启用
pgbouncer 6432 连接池 启用
patroni 8008 PostgreSQL 高可用组件 启用
primary @ haproxy 5433 主库连接池,读写服务 启用
replica @ haproxy 5434 从库连接池,只读服务 启用
default @ haproxy 5436 主库直连服务 启用
offline @ haproxy 5438 离线实例直连服务 启用
pg_exporter 9630 PostgreSQL 指标导出器 启用
pgbouncer_exporter 9631 PgBouncer 指标导出器 启用
pgbackrest_exporter 9854 pgBackRest 指标导出器 启用
vip-manager - 将 VIP 绑定到主库 禁用