云原生 PostgreSQL 集群 - PGO:来自 Crunchy Data 的 Postgres Operator

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
可观测监控 Prometheus 版,每月50GB免费额度
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 云原生 PostgreSQL 集群 - PGO:来自 Crunchy Data 的 Postgres Operator

使用 PGOKubernetes 上运行 Cloud Native PostgreSQL:来自 Crunchy DataPostgres 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 集群健康所需的基本功能,包括:


Postgres 集群供应


轻松创建、扩展和删除 PostgreSQL 集群,同时完全自定义您的 PodPostgreSQL 配置!


  • provisioning
  • 轻松创建、扩展和删除 PostgreSQL 集群


高可用性


由基于分布式共识的高可用性解决方案支持的安全、自动故障转移。使用 Pod Anti-Affinity 来帮助恢复;您可以配置它的 aggressive!失败的初选会自动恢复,从而加快恢复时间。


  • 高可用性
  • Pod Anti-Affinity

支持在多个 Kubernetes 集群中工作的备用 PostgreSQL 集群

  • 多个 Kubernetes 集群


灾难恢复


备份和恢复利用开源 pgBackRest 实用程序,包括对完整、增量和差异备份以及高效增量恢复的支持。设置您希望备份保留多长时间。适用于非常大的数据库!

  • 灾难恢复


TLS


通过为 PostgreSQL 服务器启用 TLS 来保护应用程序和数据服务器之间的通信,包括强制所有连接使用 TLS 的能力。

  • PostgreSQL 服务器启用 TLS


监控


使用开源 pgMonitor 库跟踪 PostgreSQL 集群的运行状况。

  • 监控
  • pgMonitor


PostgreSQL 用户管理


使用强大的命令从您的 PostgreSQL 集群中快速添加和删除用户。管理密码过期策略或使用您首选的 PostgreSQL 身份验证方案。


升级管理


以最小的可用性影响安全地应用 PostgreSQL 更新到您的 PostgreSQL 集群。


高级复制支持


对于对丢失事务敏感的工作负载,可以在异步复制同步复制之间进行选择。

  • 异步复制
  • 同步复制


克隆


使用 pgo create cluster --restore-from 从现有集群或备份创建新集群。


连接池


使用 pgBouncer 进行连接池。

  • pgBouncer


K8S 亲和力和容忍度


使用 node affinity(节点亲和性) 将 PostgreSQL 集群部署到您偏好的 Kubernetes 节点,或者指定 Kubernetes 可以将 PostgreSQL 实例调度到哪些节点并具有 tolerations(容忍度)。

  • node affinity
  • Kubernetes 节点
  • tolerations(容忍度)


定期备份


选择备份类型(完整、增量、差异)以及您希望它在每个 PostgreSQL 集群上发生的频率。

  • scheduling-backups


备份到 S3 或 GCS


将您的备份存储在 Amazon S3、任何支持 S3 协议的对象存储系统或 GCS 中。PostgreSQL Operator 可以从这些备份中备份、恢复和创建新集群。

  • 将您的备份存储在 Amazon S3
  • GCS


多命名空间支持


您可以控制 PGO(Postgres Operator) 如何利用具有多种不同部署模型的 Kubernetes 命名空间:


  • PGO 和所有 PostgreSQL 集群部署到同一个命名空间
  • PGO 部署到一个命名空间,并将所有 PostgreSQL 集群部署到不同的命名空间
  • PGO 部署到一个命名空间,并跨多个命名空间管理 PostgreSQL 集群
  • 使用 pgo 客户端运行 pgo create namespacepgo delete namespace 动态添加和删除由 PostgreSQL Operator 管理的命名空间

Kubernetes 命名空间


完全可定制性


Postgres Operator(PGO) 使 Postgres 在支持 Kubernetes 的平台上启动和运行变得容易,但也可以进行进一步的自定义。因此,PGO 允许您进一步自定义您的部署,包括:


  • 为主存储、副本存储和备份存储选择不同的存储类
  • 为每个 PostgreSQL 集群部署选择自己的容器资源类;区分用于主集群和副本集群的资源!
  • 使用自己的容器镜像仓库,包括支持 imagePullSecrets 和私有仓库
  • 自定义您的 PostgreSQL 配置
  • 带上您自己的受信任证书颁发机构 (CA) 以与 Operator API server 一起使用
  • 覆盖每个集群的 PostgreSQL 配置


工作原理


image.png


Crunchy PostgreSQL Operator 扩展了 Kubernetes,为快速创建和管理 PostgreSQL 集群提供更高级别的抽象。Crunchy PostgreSQL Operator 利用称为 “自定义资源(Custom Resources)”Kubernetes 概念来创建多个自定义资源定义 (CRD),以允许管理 PostgreSQL 集群。


包含的组件


使用 PostgreSQL Operator 部署的 PostgreSQL 容器包括以下组件:

  • PostgreSQL
  • PostgreSQL Contrib Modules
  • PL/Python + PL/Python 3
  • PL/Perl
  • pgAudit
  • pgAudit Analyze
  • pgnodemx
  • pg_cron
  • pg_partman
  • set_user
  • TimescaleDB (Apache 2 edition)
  • wal2json
  • pgBackRest
  • pgBouncer
  • pgAdmin 4
  • pgMonitor
  • Patroni
  • LLVM (for JIT compilation)

除上述内容外,地理空间增强的 PostgreSQL + PostGIS 容器还添加了以下组件:


  • PostGIS
  • pgRouting
  • PL/R

PostgreSQL Operator Monitoring 使用以下组件:

  • pgMonitor
  • Prometheus
  • Grafana
  • Alertmanager

未直接与 PostgreSQL Operator 集成但可以与其一起工作的其他容器包括:


  • pgPool II
  • pg_upgrade
  • pgBench

有关 PostgreSQL Operator 的哪些版本包含哪些组件的更多信息,请访问文档的兼容性部分。


支持的平台


PGOPostgres 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 以及 hostPathNFS 进行了测试。


有各种不同类型的 Storage Class 可供 Kubernetes 使用,PGO 尽最大努力测试每一个,但由于这一领域的广度,PGO 无法验证每一类中的 Postgres Operator 功能。尽管如此,PostgreSQL Operator 被设计为与存储类无关,并已被证明可以与其他存储类一起工作。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2天前
|
Kubernetes Cloud Native Ubuntu
云原生之旅:Kubernetes集群搭建与应用部署
【8月更文挑战第65天】本文将带你进入云原生的世界,通过一步步指导如何在本地环境中搭建Kubernetes集群,并部署一个简单的应用。我们将使用Minikube和Docker作为工具,探索云原生技术的魅力所在。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和实践技巧。
|
16天前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云数据库重磅升级!元数据服务OneMeta + OneOps统一管理多模态数据
|
1月前
|
关系型数据库 分布式数据库 数据库
开源云原生数据库PolarDB PostgreSQL 15兼容版本正式发布
PolarDB进行了深度的内核优化,从而实现以更低的成本提供商业数据库的性能。
|
1月前
|
Kubernetes 监控 Cloud Native
Cluster Optimizer:一款云原生集群优化平台
**Cluster Optimizer** 是一款云原生集群优化平台,旨在通过自动化和智能化工具帮助企业降低云成本,解决云原生架构中的成本管理难题。面对资源闲置、配置不当和缺乏自动化优化机制等挑战,Cluster Optimizer能够深入分析云资源、应用和用户行为,精准识别优化机会,并给出具体建议,涵盖节点组、节点、GPU 节点、磁盘、持久卷和应用等多个维度。通过优化实例类型、自动扩缩容和资源分配,帮助企业降低成本、提升性能和效率。[点击此处](https://www.wiseinf.com.cn/docs/setup/) 免费安装和试用 **Cluster Optimizer 社区版**。
81 9
|
2月前
|
运维 Kubernetes Cloud Native
云原生之旅:Kubernetes 集群的搭建与实践Python 编程入门:从零基础到编写实用脚本
【8月更文挑战第30天】在数字化转型的大潮中,云原生技术以其弹性、可扩展性及高效运维能力成为企业IT架构升级的关键。本文将通过实际操作演示如何在本地环境搭建一个简易的Kubernetes集群,带你领略云原生的魅力所在。从集群规划到服务部署,每一步都是对云原生理念的深刻理解和应用。让我们共同探索,如何通过Kubernetes集群的搭建和运维,提升业务灵活性和创新能力。
|
2月前
|
Kubernetes Cloud Native 应用服务中间件
云原生之旅:Kubernetes集群搭建与应用部署
【8月更文挑战第28天】在数字化浪潮中,云原生技术正成为企业IT架构转型的重要驱动力。本文将通过实践案例,引导读者理解云原生的核心概念,掌握Kubernetes集群的搭建方法,并学会如何部署和管理容器化应用。文章不仅提供详细的操作步骤和示例代码,还深入探讨了云原生技术背后的哲学及其对企业数字化转型的影响,旨在帮助读者构建起对云原生世界的全面认识,并激发对技术创新和应用实践的思考。
|
2月前
|
运维 Kubernetes Cloud Native
探索云原生:Kubernetes集群的部署与管理
【8月更文挑战第31天】 本文将带领读者深入了解云原生技术,特别是以Kubernetes为核心的集群部署和管理。文章不仅介绍了Kubernetes的基础概念和架构,还通过实际的代码示例展示了如何在云平台上搭建一个Kubernetes集群。我们将从基础的安装步骤到高级的服务部署,一步步揭示如何利用Kubernetes来简化容器化应用的管理与扩展。无论你是云原生新手还是希望提升现有技能的开发者,这篇文章都将成为你实践云原生技术的宝贵指南。
|
2月前
|
Kubernetes Cloud Native 应用服务中间件
云原生之旅:构建你的首个Kubernetes集群
【8月更文挑战第31天】在这个数字化迅速演进的时代,云原生技术如同星辰般璀璨。它不仅是企业数字化转型的引擎,更是开发者们探索创新的乐园。本文将带你开启一场云原生的奇妙旅程,从零开始,一步步构建属于你自己的Kubernetes集群。想象一下,当你的应用在云端自如地伸缩、滚动更新时,那份成就感和掌控感,是不是已经让你跃跃欲试了呢?那就让我们开始吧!
|
2月前
|
Kubernetes Cloud Native JavaScript
云原生之旅:Kubernetes 集群搭建与应用部署实践
【8月更文挑战第31天】云原生技术正在改变软件开发和运维的方式,而Kubernetes作为其核心组件之一,提供了一个强大的平台来编排容器化的应用。本文将引导你了解如何搭建一个基本的Kubernetes集群,并通过一个简单的Node.js应用示例,展示如何在集群中部署和管理应用。我们将从零开始,逐步构建起对Kubernetes的直观理解,并在实践中学习其核心概念。
|
3月前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库使用问题之如何将ADB中的数据导出到自建的MySQL数据库
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
下一篇
无影云桌面