【编者的话】本文主要介绍了如何在Kubernetes环境中用Stolon去部署高可用的PostgreSQL,本文从Stolon的结构组成开始,由浅入深介绍原理,从开始安装到最后对其进行failover测试,深入浅出,为以后部署高可用的PostgreSQL提供了一种的解决方案。
创建一个高可用的PostgreSQL集群环境总是一件棘手的事情。在云环境里部署时更是非常困难。我至少找到了3个项目,它们可以在Kubernetes里提供高可用的PostgreSQL解决方案。
Crunchy
Crunchy容器套件提供一个了Docker容器,它能快速部署PostgreSQL,同时也提供管理和监控的工具。并且支持多种用风格的部署PostgreSQL集群。
漂亮的图表加上一些在kubernets.io上的用户分享12说服我去试一下crunchy容器。但是过了一段时间,我改变了想法。
我不想说他设计上的某些缺点或者是其他的什么不好。但是它给我的感觉就好像是我自己在容器里手动安装PostgreSQL一样,并没有云的感觉。
所以我尝试了一下stolon。在一次又一次的安装和卸载之后,我运行了它的statefulset的例子并且用helm chart创建。
如果你想知道更多关于stolon可以参考作者这篇介绍。
下面我将展示一下安装过程并且演示一下集群环境下的failover。我们假设安装用的是helm chart。
Stolon 架构图摘抄自Stolon的介绍。
Stolon 是由3个部分组成的:
keeper:他负责管理PostgreSQL的实例汇聚到由senti