5 个 PostgreSQL Kubernetes Operator 选择

您所在的位置:网站首页 shell-operator 5 个 PostgreSQL Kubernetes Operator 选择

5 个 PostgreSQL Kubernetes Operator 选择

2023-04-17 18:39| 来源: 网络整理| 查看: 265

PostgreSQL (Postgres) 是一个健壮的有状态、对象关系和开源数据库,以其可靠性、高性能和可扩展性而闻名。数据库管理系统提供的功能包括外键约束、高可用性、复杂查询、SQL 多版本并发控制 (MVCC) 和可更新视图。这些特性使 PostgreSQL 适合为 Kubernetes (K8s) 应用程序提供弹性和高可用性的数据服务。

但是,要将 PostgreSQL 数据库组件实施到 Kubernetes 环境中,您需要一个自动配置、修改和监控 PostgreSQL 集群的操作员。操作员监控 PostgreSQL 集群清单——节点、安全性、容错性和站点拓扑——并进行必要的调整。

PostgreSQL Kubernetes Operator 包括:

Crunchy Data Postgres OperatorZalando Postgres OperatorKubeDB Postgres OperatorStackGresPercona Postgres Operator

让我们仔细看看这些 PostgreSQL Kubernetes Operator。我们将审查每个运营商的一些功能以及每个运营商的安装情况,以帮助您确定哪一个最能满足您的需求。

Crunchy Data Postgres Operator

​​Crunchy Postgres Operator for Kubernetes​​​ (PGO) 可自动部署并简化支持 Kubernetes 的 PostgreSQL 集群的管理。​​Operator 还提供 pod 自定义和 PostgreSQL 配置功能,通过 pgBackRest​​开源实用程序 提供高可用性、监控和数据恢复。

重要的 PGO 功能包括:

Crunchy Data 操作符,它允许持久存储配置,主要与动态存储类、HostPath 和网络文件系统 (NFS) 一起使用PostgreSQL 配置,确保操作员部署健康的集群启用水平扩展以增加冗余和高可用性自定义 PostgreSQL 配置,允许用户在生产环境中配置 PostgreSQL 工作负载传输层安全 (TLS) 以保护数据服务器和 Postgres 操作员之间的交互(启用 TLS 安全的先决条件包括 CA 证书、TLS 私钥和 TLS 证书)​​pgMonitor 库​​,用于监控您的 PostgreSQL 集群和主机环境的健康状况、指标和性能PostgreSQL 用户管理,以帮助管理用户身份验证、入职和从 PostgreSQL 中删除节点亲和性部署,使操作员能够使用节点亲和性将 PostgreSQL 集群调度和部署到 Kubernetes 节点

您可以通过两种方式安装 PGO PostgreSQL Operator:

通过 Postgres 操作员安装程序(与 Ansible 一起使用)来自​​OperatorHub.io​​​或​​Google Cloud Marketplace 等市场​​ 如何设置 PGO

您需要这些先决条件来安装和运行 PGO:

Kubernetes v1.13+Kubectl应用程序端口Kubernetes 集群,例如 Amazon Elastic Kubernetes Service (Amazon EKS)

有关安装和配置 PGO 的详细步骤,请参阅 Crunchy Data 的​​文档​​。Crunchy Operator 的架构依赖于 Kubernetes 自定义资源 (CR) 来创建各种自定义资源定义 (CRD) 来部署和管理 PostgreSQL 集群。这些 CRD 包括:

pgclusters.crunchydata.compgreplicas.crunchydata.compgtasks.crunchydata.compgpolicies.crunchydata.com

要让操作员使用自定义资源配置 PostgreSQL 集群,您需要首先将用于定义 PostgreSQL 集群的属性添加到 pgclusters.crunchydata.com CRD。包括集群名称、存储、秘密引用、边车和高可用性规则等详细信息。

接下来,PostgreSQL Operator 将运行各种任务来部署健康的集群。其中一项任务是为秘密引用创建部署,例如 pgBackRest 存储库和 PostgreSQL 主实例。

设置 PostgreSQL 实例后,操作员会创建一个​​pgBackRest​​以利用其 repo 的副本配置功能。pgBackRest 存储库还包括如下功能和特性:

通过“delta restore”组件提供自动修复失败的主节点提供集群克隆功能允许完整、增量和差异备份允许完整的时间点数据恢复

有关设置自定义配置、灾难恢复、用户角色和身份验证的进一步指导, 请参阅 Crunchy 的 PostgreSQL Operator​​文档。​​

Zalando Postgres Operator

Patroni 为 Zalando 的​​Postgres Operator​​提供支持。Operator 可帮助您自动集成到 CI/CD 管道中,而无需访问 Kubernetes API。这种直接访问消除了手动操作并自动化了资源配置。此外,该 Operator 使您能够管理各种命名空间中的多个 Postgres 集群。

大部分操作员范围简化了在 Kubernetes 上部署由 Patroni 提供支持的集群——滚动更新、配置和清理 Postgres 集群——而 Patroni 处理高可用性集群引导操作。

如何设置 Zalando Postgres Operator

我们建议使用以下选项之一在本地运行 Kubernetes:

​​Minikube​​用于创建单节点 Kubernetes 集群​​k3d​​​和​​kind​​用于创建多节点 Kubernetes 集群

此外,请务必安装 kubectl 以与 Kubernetes 基础架构进行交互。

您可以通过以下三种方式之一安装 Postgres Operator:

使用​​Helm 图表​​使用自定义清单。您可以使用 kubectl v1.14 或更新版本来安装 kubectl apply -k github.com/zalando/postgres-operator/manifests通过手动部署手动使用 YAML 清单(请注意,您需要将清单配置到您的 Kubernetes 环境)

有关详细的安装指南,请参阅 Zalando 的​​文档​​。

一旦安装完成并且操作员正在运行,您就可以部署 Postgres 集群。首先,使用以下命令提交 Postgres 集群清单:

kubectl create -f manifests/minimal-postgres-manifest.yaml

在 Postgres Operator 添加并验证集群清单后,它会创建端点和服务资源以及 StatefulSet 以根据清单指示的实例生成新的 pod。

接下来,数据库 pod 将运行 Spilo 映像和 Patroni pod 模板,由数字后缀标识。它们将分为主 pod 和另一个 pod,用于端点和服务下的副本。

KubeDB

AppsCode 开发了​​KubeDB​​,可让您为各种数据库创建 Operator。KubeDB 自动执行 Kubernetes 中的常规 PostgreSQL 操作,例如集群配置、备份、恢复、修补、故障发现和修复。此外,KubeDB Operator 允许您为所有有状态和无状态应用程序管理一个堆栈,从而降低了复杂性。

KubeDB 的其他核心功能包括:

能够在一次性备份或您喜欢的频率之间进行选择KubeDB 只做加密非重复备份,因此您只需支付增量存储的成本PostgreSQL 操作员使用 PersistentVolumeClaims (PVC) 为数据库实例配置磁盘,从而提高性能对 KubeDB 操作员及其数据库启用 Prometheus 的监控支持 PostgreSQL、MySQL、Redis、Memcached、MongoDB 和 Elasticsearch 如何设置 KubeDB

您将需要这些工具来运行 KubeDB:

Kubernetes 集群Kubectl

由于 KubeDB 操作员在 Kubernetes 环境中监控 Postgres 对象,因此 KubeDB 操作员在创建 Postgres 对象后启动了一个新的 StatefulSet 和两个集群 IP 服务。

按照​​以下​​​步骤安装 KubeDB 算子,并​​详细​​了解 KubeDB 算子如何在 Kubernetes 中管理 Postgres 数据库。

KubeDB 与其他 PostgreSQL 运营商的不同之处在于,其他运营商使用内部工具而不是 Patroni 管理集群。此外,KubeDB 在​​独立的 GitHub 存储库​​中维护组织良好的文档。

尽管该公司提供免费的社区运营商,但部署功能运营商所需的所有核心组件仅在其基于订阅的企业版中可用。​​有关更多安装说明,请参阅 KubeDB 的文档​​。

StackGres

StackGres ​​Operator​​提供了多个框架来设置资源、配置持久卷和定义配置文件,就像 Zalando 提供的一样。这些配置经过全面验证,包括最佳实践和对在个人和企业级别部署 StackGres 操作员的支持。

团队在处理分布式基础架构时面临的一些核心挑战是可观察性、性能调整以及抽象出与相互交织的平台相关的复杂性。StackGres 对这些挑战的解决方案之一是将​​Envoy​​添加到他们的操作员中,这是一个通过可观察性和一致的性能调整帮助查明错误的代理。

在此过程中,操作员执行其 Kubernetes 任务,同时收集指标并调整平台以提高其容错性和可用性。

如何设置 StackGres

StackGres 的​​安装​​相对简单:您可以使用 kubectl 命令或通过 Helm 快速安装它,以进行生产就绪和可定制的安装:

kubectl apply -f 'https://sgres.io/install

or

helm install --namespace stackgres stackgres-operator --set-stringadminui.service.type=LoadBalancerhttps://stackgres.io/downloads/stackgres-k8s/stackgres/latest/helm/stackgres-operator.tgz

安装后,确认操作员已准备好使用此命令:

kubectl wait -n stackgres deployment -l group=stackgres.io --for=condition=Available

当操作员准备好使用时,您会看到 Pod 正在运行:

➜ kubectl get pods -n stackgres -l group=stackgres.ioNAME READY STATUS RESTARTS AGEstackgres-operator-78d57d4f55-pm8r2 1/1 Running 0 3m34sstackgres-restapi-6ffd694fd5-hcpgp 2/2 Running 0 3m30s

您现在可以创建、扩展和自定义 Postgres 集群。查看 StackGres​​文档​​以获取有关如何配置和部署 StackGres 集群的进一步指导。

Percona Postgres Operator

​​Percona Distribution for PostgreSQL Operator​​是 Percona 对 Operator 领域的补充,基于 Crunchy Data 的 Operator。Percona 的架构与 Crunchy Data 非常相似,但有一些附加功能:

Percona 的内部监控解决方案 Percona 监控和管理 (PMM) 负责监控方面的繁重工作。它还有一个用户友好的 Web 控制台,用于查看高可用性 (HA) 代理指标。Percona 的操作员与存储无关,可以使用网络文件系统 (NFS)、hostPath 卷和各种存储类。

Postgres Operator 在部署时将以下组件添加到 Postgres 容器套件中:

主要 Postgres 数据库用于备份和灾难恢复的 pgBackRest 实用程序基于 Patroni 的高可用性组件pg-stat-monitor 用于监控和性能查询用于 PostgreSQL 连接池的 pgBouncer 如何设置 Percona Postgres Operator

最新的 Percona Postgres 算子(1.10)正式支持这些平台:

OpenShift by RedHat 版本 4.7 – 4.9亚马逊弹性容器服务 (EKS) 1.18 – 1.21谷歌 Kubernetes 引擎 (GKE) 版本 1.19-1.22

您还可以通过 Minikube 或 Helm 图表安装 Percona。您将需要 kubectl 工具来在所有平台上部署操作员。

在每个平台上设置 Percona 需要不同的配置,所有这些都可以在他们的​​文档​​中找到。

结论

我们强调的操作符满足在 Kubernetes 上运行高可用性和容错 PostgreSQL 集群的基本阈值。但是,您需要为 Postgres pod 提供动态和容器原生存储,以保持可用性,即使在 pod 重新调度时也是如此。

您需要满足可用性、性能、安全性、合规性和服务级别协议 (SLA) 要求的端到端数据管理解决方案。详细了解​​Portworx 数据服务​​数据库即服务平台如何帮助部署和自动管理您的 Kubernetes 数据服务。

翻译

​​Choosing a Kubernetes Operator for PostgreSQL​​

关注

微信公众号【进击云原生】,扫左侧码关注,了解更多咨询,更有免费资源供您学习​



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3