跳转到主要内容

插件 (Addons)

pgcli 插件管理指南

pgcli 支持通过插件系统扩展 PostgreSQL 功能。插件是独立的容器,为 PostgreSQL 实例提供额外能力,无需修改数据库本身。

支持的插件

目前支持以下插件:

插件 说明
pgbouncer 连接池管理器,提供事务级连接池化
etcd 分布式键值存储——独立运行、可组集群,用于 HA / DCS
pgdog Postgres 代理——连接池化、负载均衡与分片
postgrest 将 PostgreSQL schema 暴露为 REST API——单容器无状态,本地或远程(任意 PG 端点)
haproxy Patroni 集群前的 TCP 负载均衡——读写一体或读写分离(仅 Linux)
minio S3 兼容对象存储,含 Web 控制台——单机或跨主机分布式纠删码集群(Linux 与 macOS)
silo S3 兼容对象存储(Pigsty 的 MinIO 分支)——功能面与 minio 插件一致,共用同一端口池;自带 mcli 客户端(Linux 与 macOS)
rustfs S3 兼容对象存储(Rust 重新实现)——SNSD/SNMD/MNMD 纠删码布局,固定的容器 uid 由 pgcli 定制镜像在内部消化,共用同一端口池(仅 Linux)

每个插件都有独立页面,包含命令、参数与故障排除说明。

Patroni 高可用(pg ha)不在此列——它不通过 pg addon 安装,而是独立的顶层命令, 文档也已从本节拆出,见 HA 集群。本节的 etcd 与 HAProxy 仍是可被 pg ha 集群使用的插件。

工作原理

插件作为独立容器运行,通过 pg.yaml 管理:

  1. pg addon install 生成配置并启动插件容器
  2. 配置与数据存放在 <base-dir>/addon/<addon-name>/
  3. 插件容器通过主机网络通信
  4. 配置更新时容器自动重启

命名空间隔离: 插件遵循配置的 namespace 设置 —— 容器名包含命名空间前缀, 因此不同配置文件可以管理互不冲突的独立插件。

常用命令

pg addon install <addon> [flags]   # 安装 / 重新配置(幂等)
pg addon list                       # 查看所有已安装插件及状态
pg addon remove <addon> [flags]     # 移除插件、容器与数据

各插件的具体参数与示例见其独立页面: Pgbouncer · etcd · PgDog · PostgREST · HAProxy · MinIO · Silo · rustfs。Patroni 相关页面见 HA 集群。

通过 PgBouncer 插件为 PostgreSQL 实例提供连接池

以 pgcli addon 形式运行独立的 etcd 集群,用于 HA / DCS 场景

将 PgDog(Postgres 代理:连接池、负载均衡、分片)作为 pgcli 插件运行

通过 PostgREST 插件将 PostgreSQL schema 暴露为 REST API

以 pgcli 插件方式运行 rustfs(Rust 实现的 S3 兼容对象存储)——单机或纠删码多盘/多节点,固定的容器 uid 由定制镜像在内部消化

以 pgcli 插件方式运行 HAProxy——Patroni 集群前的 TCP 负载均衡,支持读写一体(unified)与读写分离(split)两种模式

以 pgcli 插件方式运行 silo(Pigsty 的 MinIO 分支)——单机或跨主机分布式纠删码集群的 S3 兼容对象存储(含 Web 控制台)

以 pgcli 插件方式运行 MinIO——单机或跨主机分布式纠删码集群的 S3 兼容对象存储(含 Web 控制台)