跳转到主要内容

节点

节点(node)是对硬件资源/操作系统的抽象,可以是物理机,裸金属、虚拟机、或者容器与 pods。

节点(node) 是对硬件资源/操作系统的抽象,可以是物理机,裸金属、虚拟机、或者容器与 pods。

只要装着 Linux 操作系统(以及 systemd 守护进程),能使用 CPU/内存/磁盘/网络 等标准资源,即可视作节点。

节点上可以安装 模块,Pigsty 中存在几种不同类型节点,主要区别就在于安装了不同的模块。

类型说明
普通节点被 Pigsty 管理的节点
ADMIN 节点使用 Ansible 发出管理指令的节点
INFRA 节点安装 INFRA 模块的基础设施节点
ETCD 节点安装 ETCD 模块的分布式共识节点
MINIO 节点安装 MINIO 模块的对象存储节点
PGSQL 节点安装 PGSQL 模块的数据库节点
……安装了其他各类模块的节点……

在 单机部署 Pigsty 时,多者合而为一,当前节点将同时作为普通节点,管理节点、基础设施节点、ETCD 节点,以及数据库节点。


普通节点

使用 Pigsty 管理节点,可在其上安装模块。node.yml 剧本将调整节点至所需状态。 普通节点上可能会运行以下服务:

组件端口描述状态
node_exporter9100节点监控指标导出器✅ 默认启用
haproxy9101HAProxy 负载均衡器(管理端口)✅ 默认启用
vector9598日志收集代理✅ 默认启用
docker9323启用容器支持⚠️ 按需启用
keepalivedn/a管理节点集群 L2 VIP⚠️ 按需启用
keepalived_exporter9650监控 Keepalived 状态⚠️ 按需启用

这里,node_exporter 会向监控系统暴露主机上的各类监控指标,vector 会向日志收集系统发送日志,haproxy 则提供负载均衡功能,对外暴露服务。 这三项服务默认开启。而 Docker,keepalived 及 keepalived_exporter 这三项服务作为可选项,可按需启用。


ADMIN节点

一套 Pigsty 部署中有且只有一个 管理节点,管理节点是执行 Ansible 剧本,发起控制/部署命令的节点。

该节点拥有对所有其他节点的 ssh/sudo 访问权限。管理节点的安全至关重要,应严格控制访问;其信任范围与关键资产参见 安全模型:信任边界。

在 单机安装 的 配置过程 中,当前安装节点就是管理节点。 但也有其他的可能,例如,如果你的笔记本可以 ssh 访问所有被管理节点,并且安装了 Ansible,那么在这种情况下, 您的笔记本电脑就可以作为一个管理节点 —— 尽管这对于生产环境来说不太合适。

例如,您使用自己的笔记本电脑,管理一台云端上部署了 Pigsty 的虚拟机,这时候,您的笔记本电脑就是管理节点。

在严肃的生产环境中,管理节点通常是 1-2 台 DBA 专用的 管控机。在资源受限的环境中,则通常会复用 INFRA节点 作为管理节点。 因为所有的 INFRA 节点上都默认安装了 Ansible,可以作为额外的备用的管理节点。


INFRA节点

一套 Pigsty 部署可能有 1 个或多个 INFRA 节点,大型生产环境可能有 2-3 个。

配置清单中的 infra 分组指定哪些节点是 INFRA 节点,这些节点上会部署 INFRA 模块,包含下列组件:

组件端口描述
nginx80/443Web 图形界面,本地软件仓库
grafana3000可视化平台
victoriaMetrics8428时序数据库(收存监控指标)
victoriaLogs9428日志收集服务器
victoriaTraces10428链路追踪收集服务器
vmalert8880告警与衍生指标计算规则
alertmanager9059告警聚合分发/屏蔽管理
blackbox_exporter9115黑盒探测,ping 节点 / vip
dnsmasq53内部 DNS 域名解析
chronyd123NTP 时间服务器
ansible-执行剧本,发起管理

其中,Nginx 作为当前模块的入口,提供 Web 图形界面和本地软件仓库服务。 如果你部署多个 INFRA 节点,每个 Infra 节点上的服务是相互独立的。 但你确实可以从任意一个 Infra 节点上的 Grafana 访问所有的监控数据源。

Pigsty 使用 Apache-2.0 许可证开源,但请注意其中的 Grafana 组件使用 AGPLv3 许可证。


ETCD节点

ETCD 模块为 PostgreSQL 高可用提供分布式共识服务(DCS)。

配置清单 中的 etcd 分组指定哪些节点是 ETCD 节点,ETCD 节点上运行着 etcd 服务器,监听以下两个端口:

组件端口描述
etcd2379ETCD 分布式键值存储(客户端端口)
etcd2380ETCD 集群 Peer 通信端口

MINIO 节点

MINIO 模块为 PostgreSQL 提供可选的 Silo 备份存储仓库。

配置清单中的 minio 分组指定哪些节点是 MINIO 模块节点;v4.5.0 会在这些节点上运行 Silo 服务器,监听以下端口:

组件端口描述
silo9000S3 API 服务端口
silo9001Silo 管理控制台端口

PGSQL节点

安装了 PGSQL 模块的节点被称为 PGSQL 节点。节点与 PostgreSQL 实例为 1:1 部署,也就是每个节点上只运行一个 PG 实例。

PGSQL 节点可从相应 PostgreSQL 实例借用 身份 —— 由 node_id_from_pg 控制,默认为 true,即节点名会被设置为 PG 实例名。

PGSQL 节点在 普通节点 的基础上,还会额外运行以下组件:

组件端口描述状态
postgres5432PostgreSQL 数据库服务器✅ 默认启用
pgbouncer6432Pgbouncer 连接池✅ 默认启用
patroni8008Patroni 高可用管理组件✅ 默认启用
pg_exporter9630Postgres 监控指标导出器✅ 默认启用
pgbouncer_exporter9631PGBouncer 监控指标导出器✅ 默认启用
pgbackrest_exporter9854Pgbackrest 监控指标导出器✅ 默认启用
vip-managern/a将 L2 VIP 绑定在集群主库节点上⚠️ 按需启用
{{ pg_cluster }}-primary5433通过 haproxy 对外暴露数据库服务:主连接池:读/写服务✅ 默认启用
{{ pg_cluster }}-replica5434通过 haproxy 对外暴露数据库服务:副本连接池:只读服务✅ 默认启用
{{ pg_cluster }}-default5436通过 haproxy 对外暴露数据库服务:主直连服务✅ 默认启用
{{ pg_cluster }}-offline5438通过 haproxy 对外暴露数据库服务:离线直连:离线读服务✅ 默认启用
{{ pg_cluster }}-<service>543x通过 haproxy 对外暴露数据库服务:PostgreSQL 定制服务⚠️按需定制

其中,vip-manager 只有当用户配置了 PG VIP 时才会启用。 在 pg_services 中可以定义更多的 自定义服务,这些服务会被 haproxy 对外暴露,并使用更多的服务端口。

这个页面对您有帮助吗?