使用 PGO
在 Kubernetes
上运行 Cloud Native PostgreSQL
:来自 Crunchy Data
的 Postgres Operator
!
Cloud Native PostgreSQL
Crunchy Data
Postgres Operator
PGO
是由 Crunchy Data
开发并包含在 Crunchy PostgreSQL for Kubernetes
中的 Postgres Operator
,可自动化并简化在 Kubernetes
上部署和管理开源 PostgreSQL
集群。
Crunchy PostgreSQL for Kubernetes
无论您是需要启动并运行一个简单的 Postgres
集群,还是需要在生产中部署一个高可用性、容错群集群,或者是运行自己的数据库即服务(database-as-a-service)
,PostgreSQL Operator
都提供了保持云原生 Postgres
集群健康所需的基本功能,包括:
轻松创建、扩展和删除 PostgreSQL 集群
,同时完全自定义您的 Pod
和 PostgreSQL
配置!
provisioning
轻松创建、扩展和删除 PostgreSQL 集群
由基于分布式共识的高可用性解决方案
支持的安全、自动故障转移。使用 Pod Anti-Affinity
来帮助恢复;您可以配置它的 aggressive
! 失败的初选会自动恢复,从而加快恢复时间。
高可用性
Pod Anti-Affinity
支持在多个 Kubernetes 集群
中工作的备用 PostgreSQL 集群
。
多个 Kubernetes 集群
备份和恢复利用开源 pgBackRest
实用程序,包括对完整、增量和差异备份以及高效增量恢复的支持
。 设置您希望备份保留多长时间。适用于非常大的数据库!
通过为 PostgreSQL 服务器启用 TLS 来保护应用程序和数据服务器之间的通信,包括强制所有连接使用 TLS
的能力。
PostgreSQL 服务器启用 TLS
使用开源 pgMonitor
库跟踪 PostgreSQL
集群的运行状况。
监控
pgMonitor
使用强大的命令从您的 PostgreSQL
集群中快速添加和删除用户。 管理密码过期策略或使用您首选的 PostgreSQL
身份验证方案。
以最小的可用性影响安全地应用 PostgreSQL
更新到您的 PostgreSQL
集群。
对于对丢失事务敏感的工作负载,可以在异步复制
和同步复制
之间进行选择。
异步复制
同步复制
使用 pgo create cluster --restore-from
从现有集群或备份创建新集群。
使用 pgBouncer
进行连接池。
使用 node affinity(节点亲和性) 将 PostgreSQL
集群部署到您偏好的 Kubernetes
节点,或者指定 Kubernetes
可以将 PostgreSQL
实例调度到哪些节点并具有 tolerations(容忍度)。
node affinity
Kubernetes 节点
tolerations(容忍度)
选择备份类型(完整、增量、差异)以及您希望它在每个 PostgreSQL
集群上发生的频率。
scheduling-backups
将您的备份存储在 Amazon S3、任何支持 S3 协议的对象存储系统或 GCS 中。PostgreSQL Operator
可以从这些备份中备份、恢复和创建新集群。
将您的备份存储在 Amazon S3
GCS
您可以控制 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
和私有仓库(CA)
以与 Operator API server
一起使用PostgreSQL
配置Crunchy PostgreSQL Operator
扩展了 Kubernetes
,为快速创建和管理 PostgreSQL
集群提供更高级别的抽象。Crunchy PostgreSQL Operator
利用称为 “自定义资源(Custom Resources)”
的 Kubernetes
概念来创建多个自定义资源定义 (CRD)
,以允许管理 PostgreSQL
集群。
使用 PostgreSQL Operator
部署的 PostgreSQL 容器包括以下组件:
TimescaleDB (Apache 2 edition)
LLVM (for JIT compilation)
除上述内容外,地理空间增强的 PostgreSQL + PostGIS
容器还添加了以下组件:
PostgreSQL Operator Monitoring 使用以下组件:
未直接与 PostgreSQL Operator 集成但可以与其一起工作的其他容器包括:
有关 PostgreSQL Operator
的哪些版本包含哪些组件的更多信息,请访问文档的兼容性部分。
PGO
是 Postgres Operator
,是 Kubernetes-native
的,并保持与 Kubernetes 1.11
的向后兼容性,并针对以下平台进行了测试:
此列表仅包括 Postgres Operator
在发布过程中经过专门测试的平台:PGO
也适用于其他 Kubernetes 发行版。
PGO
,即 Postgres Operator
,使用各种不同类型的 Kubernetes
存储和 Storage Classes
以及 hostPath
和 NFS
进行了测试。
有各种不同类型的 Storage Class
可供 Kubernetes
使用,PGO
尽最大努力测试每一个,但由于这一领域的广度,PGO
无法验证每一类中的 Postgres Operator
功能。尽管如此,PostgreSQL Operator
被设计为与存储类无关,并已被证明可以与其他存储类一起工作。
公众号:黑客下午茶
手机扫一扫
移动阅读更方便
你可能感兴趣的文章