ongres/patroni本镜像整合了PostgreSQL数据库与Patroni高可用解决方案,提供开箱即用的高可用PostgreSQL集群能力。Patroni作为PostgreSQL的高可用编排工具,可实现自动故障检测、主从切换、集群配置管理等核心功能,而OCI镜像格式确保其可在各类容器运行时环境(如Docker、Kubernetes)中无缝部署。
bashdocker run -d \ --name patroni-postgres \ -e POSTGRES_USER=admin \ -e POSTGRES_PASSWORD=securepassword \ -e POSTGRES_DB=mydb \ -e PATRONI_SCOPE=mycluster \ -e PATRONI_RESTAPI_USER=patroni \ -e PATRONI_RESTAPI_PASSWORD=patronipassword \ -e PATRONI_POSTGRESQL_USER=postgres \ -e PATRONI_POSTGRESQL_PASSWORD=pgpassword \ -p 5432:5432 \ -p 8008:8008 \ -v /path/to/data:/var/lib/postgresql/data \ [镜像名称]:[标签]
| 环境变量 | 描述 | 示例值 |
|---|---|---|
POSTGRES_USER | 数据库超级用户 | admin |
POSTGRES_PASSWORD | 超级用户密码 | securepassword |
POSTGRES_DB | 初始数据库名称 | mydb |
PATRONI_SCOPE | 集群标识(所有节点需一致) | mycluster |
PATRONI_RESTAPI_USER | Patroni API认证用户 | patroni |
PATRONI_RESTAPI_PASSWORD | Patroni API认证密码 | patronipassword |
PATRONI_POSTGRESQL_USER | Patroni管理数据库用户 | postgres |
PATRONI_POSTGRESQL_PASSWORD | Patroni管理用户密码 | pgpassword |
PATRONI_KUBERNETES_NAMESPACE | Kubernetes命名空间(K8s环境) | default |
yamlversion: '3.8' services: postgres-1: image: [镜像名称]:[标签] environment: POSTGRES_USER: admin POSTGRES_PASSWORD: securepassword PATRONI_SCOPE: mycluster PATRONI_NAME: postgres-1 PATRONI_RESTAPI_USER: patroni PATRONI_RESTAPI_PASSWORD: patronipassword PATRONI_POSTGRESQL_USER: postgres PATRONI_POSTGRESQL_PASSWORD: pgpassword PATRONI_RESTAPI_LISTEN: 0.0.0.0:8008 PATRONI_POSTGRESQL_LISTEN: 0.0.0.0:5432 volumes: - data1:/var/lib/postgresql/data postgres-2: image: [镜像名称]:[标签] environment: POSTGRES_USER: admin POSTGRES_PASSWORD: securepassword PATRONI_SCOPE: mycluster PATRONI_NAME: postgres-2 PATRONI_RESTAPI_USER: patroni PATRONI_RESTAPI_PASSWORD: patronipassword PATRONI_POSTGRESQL_USER: postgres PATRONI_POSTGRESQL_PASSWORD: pgpassword PATRONI_RESTAPI_LISTEN: 0.0.0.0:8008 PATRONI_POSTGRESQL_LISTEN: 0.0.0.0:5432 volumes: - data2:/var/lib/postgresql/data postgres-3: image: [镜像名称]:[标签] environment: POSTGRES_USER: admin POSTGRES_PASSWORD: securepassword PATRONI_SCOPE: mycluster PATRONI_NAME: postgres-3 PATRONI_RESTAPI_USER: patroni PATRONI_RESTAPI_PASSWORD: patronipassword PATRONI_POSTGRESQL_USER: postgres PATRONI_POSTGRESQL_PASSWORD: pgpassword PATRONI_RESTAPI_LISTEN: 0.0.0.0:8008 PATRONI_POSTGRESQL_LISTEN: 0.0.0.0:5432 volumes: - data3:/var/lib/postgresql/data volumes: data1: data2: data3:
通过Patroni REST API检查集群状态:
bashcurl -u patroni:patronipassword http://<容器IP>:8008/cluster
如需自定义PostgreSQL或Patroni配置,可通过挂载配置文件实现:
bashdocker run -d \ ... \ -v /host/path/to/postgresql.conf:/etc/postgresql/postgresql.conf \ -v /host/path/to/patroni.yml:/etc/patroni/patroni.yml \ [镜像名称]:[标签]
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务