云原生 PostgreSQL 集群 - PGO:来自 Crunchy Data 的 Postgres Operator
2022-02-23 12:23
1296 查看
使用 PGO
在
Kubernetes上运行
Cloud Native PostgreSQL:来自
Crunchy Data的
Postgres Operator!
- Cloud Native PostgreSQL https://www.crunchydata.com/products/crunchy-postgresql-for-kubernetes/</small>
PGO是由
Crunchy Data开发并包含在
Crunchy PostgreSQL for Kubernetes中的
Postgres Operator,可自动化并简化在
Kubernetes上部署和管理开源
PostgreSQL集群。
- Crunchy PostgreSQL for Kubernetes https://www.crunchydata.com/products/crunchy-postgresql-for-kubernetes/</small>
无论您是需要启动并运行一个简单的
Postgres集群,还是需要在生产中部署一个高可用性、容错群集群,或者是运行自己的
数据库即服务(database-as-a-service),
PostgreSQL Operator都提供了保持云原生
Postgres集群健康所需的基本功能,包括:
Postgres 集群供应
轻松创建、扩展和删除 PostgreSQL 集群
,同时完全自定义您的
Pod和
PostgreSQL配置!
- provisioning https://crunchydata.github.io/postgres-operator/latest/architecture/provisioning/</small>
高可用性
由基于分布式共识的高可用性解决方案
支持的安全、自动故障转移。使用 Pod Anti-Affinity
来帮助恢复;您可以配置它的
aggressive! 失败的初选会自动恢复,从而加快恢复时间。
支持在多个 Kubernetes 集群
中工作的
备用 PostgreSQL 集群。
- 多个 Kubernetes 集群 https://crunchydata.github.io/postgres-operator/latest/architecture/high-availability/multi-cluster-kubernetes/</small>
灾难恢复
备份和恢复利用开源 pgBackRest
实用程序,
包括对完整、增量和差异备份以及高效增量恢复的支持。 设置您希望备份保留多长时间。适用于非常大的数据库!
TLS
通过为 PostgreSQL 服务器启用 TLS 来保护应用程序和数据服务器之间的通信,包括强制所有连接使用
TLS的能力。
- PostgreSQL 服务器启用 TLS https://crunchydata.github.io/postgres-operator/latest/tutorial/tls/</small>
监控
使用开源 pgMonitor
库跟踪
PostgreSQL集群的运行状况。
PostgreSQL 用户管理
使用强大的命令从您的
PostgreSQL集群中快速添加和删除用户。 管理密码过期策略或使用您首选的
PostgreSQL身份验证方案。
升级管理
以最小的可用性影响安全地应用
PostgreSQL更新到您的
PostgreSQL集群。
高级复制支持
对于对丢失事务敏感的工作负载,可以在异步复制
和同步复制
之间进行选择。
克隆
使用
pgo create cluster --restore-from从现有集群或备份创建新集群。
连接池
使用 pgBouncer
进行连接池。
K8S 亲和力和容忍度
使用 node affinity(节点亲和性) 将
PostgreSQL集群部署到您偏好的
Kubernetes节点,或者指定
Kubernetes可以将
PostgreSQL实例调度到哪些节点并具有 tolerations(容忍度)。
- node affinity https://crunchydata.github.io/postgres-operator/latest/architecture/high-availability/#node-affinity</small>
定期备份
选择备份类型(完整、增量、差异)以及您希望它在每个
PostgreSQL集群上发生的频率。
- scheduling-backups https://crunchydata.github.io/postgres-operator/latest/architecture/disaster-recovery/#scheduling-backups</small>
备份到 S3 或 GCS
将您的备份存储在 Amazon S3、任何支持 S3 协议的对象存储系统或 GCS 中。
PostgreSQL Operator可以从这些备份中备份、恢复和创建新集群。
- 将您的备份存储在 Amazon S3 https://crunchydata.github.io/postgres-operator/latest/architecture/disaster-recovery/#using-s3</small>
多命名空间支持
您可以控制
PGO(Postgres Operator)如何利用具有多种不同部署模型的 Kubernetes 命名空间:
- 将
PGO
和所有PostgreSQL
集群部署到同一个命名空间 - 将
PGO
部署到一个命名空间,并将所有PostgreSQL
集群部署到不同的命名空间 - 将
PGO
部署到一个命名空间,并跨多个命名空间管理PostgreSQL
集群 - 使用
pgo
客户端运行pgo create namespace
和pgo delete namespace
动态添加和删除由PostgreSQL Operator
管理的命名空间
Kubernetes 命名空间
完全可定制性
Postgres Operator(PGO)使
Postgres在支持
Kubernetes的平台上启动和运行变得容易,但也可以进行进一步的自定义。因此,
PGO允许您进一步自定义您的部署,包括:
- 为主存储、副本存储和备份存储选择不同的存储类
- 为每个
PostgreSQL
集群部署选择自己的容器资源类; 区分用于主集群和副本集群的资源! - 使用自己的容器镜像仓库,包括支持
imagePullSecrets
和私有仓库 - 自定义您的 PostgreSQL 配置 https://crunchydata.github.io/postgres-operator/latest/advanced/custom-configuration/</small>
(CA)以与
Operator API server一起使用
PostgreSQL配置
工作原理
Crunchy PostgreSQL Operator扩展了
Kubernetes,为快速创建和管理
PostgreSQL集群提供更高级别的抽象。
Crunchy PostgreSQL Operator利用称为
“自定义资源(Custom Resources)”的
Kubernetes概念来创建多个
自定义资源定义 (CRD),以允许管理
PostgreSQL集群。
包含的组件
使用
PostgreSQL Operator部署的 PostgreSQL 容器包括以下组件:
除上述内容外,地理空间增强的
PostgreSQL + PostGIS容器还添加了以下组件:
PostgreSQL Operator Monitoring 使用以下组件:
未直接与 PostgreSQL Operator 集成但可以与其一起工作的其他容器包括:
- pgPool II https://access.crunchydata.com/documentation/crunchy-postgres-containers/latest/container-specifications/crunchy-pgpool/</small>
有关
PostgreSQL Operator的哪些版本包含哪些组件的更多信息,请访问文档的兼容性部分。
支持的平台
PGO是
Postgres Operator,是
Kubernetes-native的,并保持与
Kubernetes 1.11的向后兼容性,并针对以下平台进行了测试:
- Kubernetes 1.17+
- Openshift 4.4+
- OpenShift 3.11
- Google Kubernetes Engine (GKE), including Anthos
- Amazon EKS
- Microsoft AKS
- VMware Tanzu
此列表仅包括
Postgres Operator在发布过程中经过专门测试的平台:
PGO也适用于其他 Kubernetes 发行版。
存储
PGO,即
Postgres Operator,使用各种不同类型的
Kubernetes存储和
Storage Classes以及
hostPath和
NFS进行了测试。
有各种不同类型的
Storage Class可供
Kubernetes使用,
PGO尽最大努力测试每一个,但由于这一领域的广度,
PGO无法验证每一类中的
Postgres Operator功能。尽管如此,
PostgreSQL Operator被设计为与存储类无关,并已被证明可以与其他存储类一起工作。
公众号:黑客下午茶
相关文章推荐
- 云原生 PostgreSQL 集群 - PGO:5分钟快速上手
- Ubuntu下PostgreSQL数据库集群(PL/Proxy)配置方法
- postgresql集群方案hot standby 安装和测试
- Pacemaker+Corosync搭建PostgreSQL集群
- Postgres-XL:基于PostgreSQL的开源可扩展数据库集群
- linux下postgresql 一主多从、redis集群、rabbitmq等环境搭建 (五) xa-rdmp 从数据库的安装...
- PostgreSQL复制集群概总
- postgresql集群方案选型
- PostgreSQL-XL, PostgreSQL集群项目
- postgresql集群方案hot standby 安装和测试
- [转]PostgreSQL 数据库集群和PL/Proxy配置安装指南
- linux下postgresql 一主多从、redis集群、rabbitmq等环境搭建 (四) xa_rdmp 主数据库安装...
- Postgresql8.3 如何控制来自其他电脑的连接
- 现有PostgreSQL 集群/热备方案
- PostgreSQL 利用Pgpool-II的集群搭建方案(Partition+LoadBalance+Replication)
- PostgreSQL-XL, PostgreSQL集群项目(二)
- linux下postgresql 一主多从、redis集群、rabbitmq等环境搭建 (三) postgresql 数据库安装...
- Ubuntu下PostgreSQL数据库集群(PL/Proxy)配置方法
- 数据库事务隔离级别与锁机制的实现----不是针对PostgreSQL,而是普遍的原理,来自互联网,有删节