[][latest-release] [][license] [![文档][documentation-badge]][documentation] [][stackoverflow]
欢迎来到CloudNativePG项目!
CloudNativePG是一个全面的开源平台,旨在无缝管理Kubernetes环境中的PostgreSQL数据库,涵盖从初始部署到持续维护的整个运营生命周期。主要组件是CloudNativePG操作员。
CloudNativePG最初由EDB构建和赞助。
目录
入门
开始使用的最佳方式是查看文档中的"快速入门"部分。
范围
CloudNativePG的目标是增加PostgreSQL在Kubernetes内部的采用率,PostgreSQL是传统VM和裸机环境中最受欢迎的DBMS之一,从而使数据库成为开发过程和GitOps CI/CD自动化流程的一个不可或缺的部分。
包括的内容
CloudNativePG由PostgreSQL专家设计,考虑到Kubernetes管理员的需求。简而言之,它通过扩展其控制器并以编程方式定义一个优秀DBA在管理高可用PostgreSQL数据库集群时通常会执行的所有操作来利用Kubernetes。
从一开始,我们的理念就是采用Kubernetes原生方法来管理PostgreSQL集群,做出渐进式决策以回答基本问题:"Kubernetes用户对PostgreSQL操作员有什么期望?"
我们做出的最重要决定是将PostgreSQL集群的状态直接在Cluster
资源中提供,以便通过Kubernetes API进行检查。我们完全接受了操作员模式和最终一致性,这是Kubernetes用于管理复杂应用程序的两个核心原则。
因此,操作员负责管理Cluster
资源的状态,通过API服务器保持与每个PostgreSQL实例管理器定期报告的信息同步。集群状态的变化可能触发例如以下操作:
-
PostgreSQL故障转移,在集群的主实例意外失败后,操作员本身选举新的主实例,更新状态,并通过协调循环直接协调操作,依靠实例管理器
-
根据集群中所需实例数量的正面或负面变化,扩大或缩小只读副本的数量,以便操作员创建或删除运行PostgreSQL所需的资源,如持久卷、持久卷声明、pod、密钥、配置映射,然后协调克隆和流复制任务
-
更新应用程序依赖的PostgreSQL服务的端点,因为Kubernetes代表单一的真相和权威来源
-
以滚动方式更新容器镜像,遵循镜像名称的变更,首先更新运行副本的pod,然后是主实例,先发出切换命令
后一个例子基于CloudNativePG的另一个支柱:不可变应用程序容器 - 正如博客文章"为什么EDB选择不可变应用程序容器"中所解释的。
上述列表可以扩展。然而,要点是CloudNativePG专门依赖Kubernetes API服务器和实例管理器来协调业务连续性PostgreSQL集群中需要进行的复杂操作,无需类似开源操作员那样依赖负责高可用性和故障转移管理的中间管理工具的任何帮助。
CloudNativePG还管理其他资源以帮助Cluster
资源管理PostgreSQL - 目前包括Backup
、ClusterImageCatalog
、ImageCatalog
、Pooler
和ScheduledBackup
。
完全拥抱Kubernetes意味着在Kubernetes API服务器临时失败期间采取不干预的方法。在这种情况下,操作员避免采取行动,推迟决策直到API服务器再次运行。同时,Postgres实例保持持久,基于集群的最新已知状态继续运行。
不包括的内容
CloudNativePG专门关注由PostgreSQL全球开发组(PGDG)维护的PostgreSQL数据库管理系统。我们目前不考虑向CloudNativePG添加PostgreSQL数据库管理系统分支中包含的扩展或功能,除非是以可扩展或可插拔框架的形式。操作员本身可以通过称为CNPG-I的插件接口进行扩展。
CloudNativePG不打算追求数据库独立性(例如控制MariaDB集群)。
通信
资源
采用者
CloudNativePG操作员的公开已知用户列表在ADOPTERS.md中。 通过将您自己和您的组织添加到这个列表中,帮助我们扩大我们的社区和CloudNativePG!
CloudNativePG在KubeCon
- 2024年3月21日,巴黎KubeCon Europe 2024:"攀登高峰:掌握使用Kubernetes存储魔法的Postgres数据库垂直可扩展性"(Gari Singh,Google和Gabriele Bartolini,EDB)
- 2024年3月19日,巴黎KubeCon Europe 2024的Kubernetes数据日:"从零到英雄:利用CloudNativePG的力量在Kubernetes中扩展Postgres"(Gabriele Bartolini,EDB)
- 2023年11月7日,芝加哥KubeCon North America 2023:"大型Postgres数据库的灾难恢复(在Kubernetes中)"(Michelle Au,Google和Gabriele Bartolini,EDB)
- 2022年10月27日,底特律KubeCon North America 2022:"Kubernetes上的数据,部署和运行PostgreSQL以及Kubernetes集群中数据库的模式"(Chris Milsted,Ondat和Gabriele Bartolini,EDB)
有用链接
- Kubernetes上的数据(DoK)社区
- "如何在Kubernetes中几乎零停机时间从任何地方迁移您的PostgreSQL数据库"由Gabriele Bartolini撰写(2024年3月)
- "使用Kubernetes、Postgres和CloudNativePG最大化微服务数据库"由Gabriele Bartolini撰写(2024年2月)
- "Kubernetes中PostgreSQL的推荐架构"由Gabriele Bartolini撰写(2023年9月)
- "使用CloudNativePG进行主要PostgreSQL升级的当前状态"由Gabriele Bartolini撰写(2023年8月)
- "Kubernetes原生数据库的崛起"由Jeff Carpenter撰写(2022年12月)
- "为什么在Kubernetes中运行Postgres?"由Gabriele Bartolini撰写(2022年5月)
- "左移安全:通往Kubernetes上PostgreSQL的道路"由Gabriele Bartolini撰写(2021年4月)
- "Kubernetes中本地持久卷和PostgreSQL的使用"由Gabriele Bartolini撰写(2020年6月)
星标历史
商标
Postgres、PostgreSQL和Slonik Logo 是加拿大PostgreSQL社区协会的商标或注册商标,经其许可使用。 [stackoverflow]: https://stackoverflow.com/questions/tagged/cloudnative-pg [最新版本]: https://github.com/cloudnative-pg/cloudnative-pg/releases/latest [文档]: https://cloudnative-pg.io/documentation/current/ [许可证]: https://github.com/cloudnative-pg/cloudnative-pg?tab=Apache-2.0-1-ov-file#readme [文档徽章]: https://img.shields.io/badge/Documentation-white?logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGN0lEQVR4nJRXXWwcVxU%2B8%2F%2BzP%2BPZtR2v7dqy07jUJUALNaiK6lZyUVVKWgGKaIv8QCMekBAVQlQICcEzVZFQVYFKQhASEBHlISJPCRJEshTFChgrIYHEiYMh69jetffHM7Mzc%2B9Bs7vjnTs7yZpZWbt37s%2F5zne%2Bc861CD0eXRkbHc3NfjeffvxNAGEAgULD2756v35%2B3qe1Nc4fnQVEXlA2LnOcXlCF8S%2B6vvVgq%2FL3M65X3e51PvfQCU4WJgZe%2B8GQ8fS7AKgjBB8KEHwjDXZSjkf0CREAaXM2eI9c65siqWxWl360Xl74ANHz%2Fy8AitxnTBfmz%2BhyYS4wGhwObQCIHSA0AigOMBzvOsXzd4pnjyL6NMmWEH8hi2b28Og3%2FqRJA0ewfQy0v1vGO2NovwPo%2FEU%2FwVgSU1PI%2BSu79v3lJAB8HM%2BTI%2FO%2FUUXzM4xHIe0xI4DdRqOAwnF%2F38ePPyzaDIDh%2FMxcWh462m08aojuGY97C0nrAEHg9BlF0fmeAPr0J15vbaKsp0BZQzEDEAlP9B209UIIVXUta%2FQEQHwxgxFjTc%2BRskAwrgVWmHtg22vMPJwLDqGUNJIAMHVAkGu3WdpZz6NAkgSXpINSycluV28er1a3rJ4M3F2%2F9AtCvXKycRrTQttrjINjxxxIL9jevxdaDHU%2FTBr6pL5ruzuLZubgUQBOY2hPij3GBUe7tBCMBRE2KrXVSz0BBI%2FtPVgtV%2F%2FxkZ5WSjI%2F%2BFIXC3sHJwgT4yFqrZFFTSlVrp3sGYLwcfxSmXCbS00j2Ms4K7qkOsFx6qdTuiHtG4AimfmM8NyvOvR2G48qXtZ2fsfrN7%2BqpcRyUp0glKiimDm4TwAcHBp%2B9WeA4ki0GMWNR9OVF8BZvn7xtI%2FF09H8jzLEgz6yLwCDuennFXHkTZZOytCOEdqDOtGwsm%2BNj00fXt%2B6%2Bj4vcA7bwNrZwENmXwAKuZnvsNRThs5ozMPfPiHyoDF7xiduHcXb70A8dRFheHjiySQATBZk0nl9MHPkBEWUoEtYjyrPFNwGzfdlD37Zdu98KCv%2BMmD2BYpUCvcST39e0%2BS1Wr249FAAg7mPzWrS5NstEbE0xrsiA6QN1PfRFLnhr%2BspxVJTlY8Mw1DqNXeyCQFREEXz9cHB0QOev73QaNhOF4B%2B45PHFHFgDhJTqjuubJFqX1KQco7NTTuW8kq95k2G4eLEGzM7lfItnjNeTKcOfV%2FT8hOuV77A9IK0XjgMpCO0ZiuV3L%2F6njCFAOmucGB3OII5XgCXEJTDdZLElVbu3Vz0fWexvL30k0B6ggBACOmIUBAEUKX0dDTvW7RCYcdZPq6n%2FSsQnUO2RuyBRgQ9Rc5mMvJ6CNIj1nXfd9qWAsCkaZzJAk1L8UjVqY737dSjfCGrPHWqXL32Q0mB%2F2BXnke00WaEYv2aTzAbnuV5pcWkDGAAGJmhSafh6hjr%2BW2SVYHrP7bb%2BOdPW%2FUgflGlTM2gaK%2Ft7tp6%2BN6yixdN89DcIwGktIFPABfNbwoQqQWEUnDJzg1g0jDeK5p7Kp7nensXFI7uyAr%2FLyM7fYLnpa6LYScE8vDnot5hrKlslm%2BfE3nVxJgO4o3KcYu%2FF8XM8yFQ27n%2F65Te%2FzKl3Jhpjj6TCIDneRD5%2FItxr1vdkALw7p1qfeWPpjHxMtsXaPxu6FLc%2BrnbSB1r7fcrlr36nqwMzQfnplJDryQCGOh%2FbLjhcM%2FEvQ4Pdund9xRV5m1LfTXaF%2BK9gsLGB9nsgddcz8thM%2FarPzYM8%2FFazf9sMFaU%2Fi%2FwvNANwEhPvUGR8ozn7d%2BiDKXixtKpbHp81nV9E7puRy31ixKUbOe%2Fv3Ud891ghhDrL5Z975eaOvV%2BCNRp0Gfz%2BcJjDABdTwlpdfKbId0t5XYAcHz5D5ZVtWUp9%2Flog2L7PgVJqZx0HOE5Cqghemv1%2Bt%2FeGBmZ%2BdB2yNN72UEpnzXG32YADA186i3bIpPxMhuKrFK%2Fd77JUnbkKbYvRJlC8DzKSZK76Lq1he2dKy%2BZuSfesSz5a2xHDbLJ%2BJaqdv5H4EUY%2BzbG2m9HgN7mg81bfw4W1uu7AjvHaqDhqF%2FZ3Fq5XFy%2FcESSDsx5fvZ7wLEsNfXk%2BjlVHfpSCOB%2FAQAA%2F%2F8zd8orZc2N9AAAAABJRU5ErkJggg%3D%3D