设计概述¶
Perc雷竞技下载官网ona Operator for PostgreSQL自动化和简化了在Kubernetes上部署和管理开源PostgreSQL集群。运算符是基于CrunchyData的PostgreSQL操作符。
使用Operator部署的PostgreSQL容器包括以下组件:
的PostgreSQL数据库管理系统,包括:
pgAuditPostgreSQL审计扩展,
的pgBackRest备份和恢复实用程序,
的pgBouncerPostgreSQL的连接池
的PostgreSQL高可用性实现Patroni模板,
的pg_stat_raybet雷竞技竞猜在线官网monitor查询性能监控实用程序,raybet雷竞技竞猜在线官网
LLVM(用于JIT编译)。
为提供高可用性,运营商涉及节点关联如果可能的话,在独立的工作节点上运行PostgreSQL集群实例。如果某个节点发生故障,Pod将自动在另一个节点上重新创建。
为了为有状态应用程序提供数据存储,Kubernetes使用了持久卷。一个PersistentVolumeClaim(PVC)用于实现对pod的自动存储发放。如果发生故障,容器存储接口(CSI)应该能够重新挂载不同节点上的存储。
Operator功能扩展了Kubernetes API自定义资源。这些crd提供了对Kubernetes API的扩展,并且,在Operator的情况下,允许您执行诸如创建PostgreSQL集群、更新PostgreSQL集群资源分配、向PostgreSQL集群添加额外的实用程序等操作。pgBouncer用于连接池等。
当一个新的自定义资源被创建,或者一个现有的自定义资源被更改或删除时,操作员会自动创建/更改/删除所有需要的Kubernetes对象,并进行适当的设置,以提供正确的Percona PostgreSQL集群操作。雷竞技下载官网
以下crd是在安装Operator时创建的:
pgclusters存储管理PostgreSQL集群所需的信息。这包括集群名称、要使用的存储和资源类、要运行哪个版本的PostgreSQL、关于如何维护高可用性集群的信息等等。pgreplicas存储在PostgreSQL集群中管理副本所需的信息。这包括副本的数量、要使用的存储和资源类、特殊的关联规则等。pgtasks是一个通用的CRD,它接受需要在集群上运行的任务类型(例如备份),并通过其工作流跟踪所述任务的状态。