k8s集群下创建高可用postgresql数据库集群实践

K8s 安装 pg集群服务器

主要的目的是做到自动灾备切换,利用kubernetes 集群做到高可用的数据库服务。
三个节点, 2节点部署 proxy,sentinel,3节点keeper (DB)

本文选着stolon,

详细解决方案,原理请看:项目地址 https://github.com/sorintlab/stolon

总体架构架构
image

下面是步骤

1. 创建临时目录下载项目

mkdir stolon
git clone https://github.com/sorintlab/stolon.git

或者自己手工下载zip包,解压到stolon目录

进入/examples/kubernetes

这里保存k8s的脚本

  kubernetes git:(master) ✗ ll
total 104
-rw-r--r--  1 moqiyi  staff   8.4K Apr 18 20:58 README.md
drwxr-xr-x  3 moqiyi  staff    96B Apr 18 21:41 image
-rw-r--r--  1 moqiyi  staff   3.7K Apr 18 20:58 postgresql_upgrade.md
-rw-r--r--  1 moqiyi  staff   255B Apr 18 20:58 role-binding.yaml
-rw-r--r--  1 moqiyi  staff   571B Apr 18 20:58 role.yaml
-rw-r--r--  1 moqiyi  staff   136B Apr 18 21:51 secret.yaml
-rw-r--r--  1 moqiyi  staff   3.2K Apr 18 22:05 stolon-keeper.yaml
-rw-r--r--  1 moqiyi  staff   234B Apr 18 23:34 stolon-proxy-service.yaml
-rw-r--r--  1 moqiyi  staff   1.5K Apr 18 21:56 stolon-proxy.yaml
-rw-r--r--  1 moqiyi  staff   1.3K Apr 18 20:58 stolon-sentinel.yaml

一共有7个yaml文件

2. 创建pv数据盘(nfs)

git上默认是利用了本地存储,这里我们使用nfs去保存数据,一面服务挂了可以恢复。更加好的是使用分布式存取服务rook ceph.(https://rook.io/, cloud native storage)

在nsf服务器上 创建pv1,pv2,pv3 目录

创建pv1, pv2,pv3 的yaml

#  pv1.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pg-pv1
spec:
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteMany
  storageClassName: nfs
  nfs:
    path: /home/nfs/pv1   <--这个一定要先在服务器上创建
    server: k8s-nfs       <--服务器地址
kubectl apply -f pv1.yaml

重复以上 依次创建 2,3作为冗余备份数据

原则上一个pv就对应一个pvc,有兴趣可以查询

如何创建nfs服务器,请参看本人的上一篇文章(NFS服务器部分)

https://blog.csdn.net/davidqymo/article/details/105473358

3. 修改密码文件

修改密码文件secret.yaml

---
apiVersion: v1
kind: Secret
metadata:
    name: stolon
type: Opaque
da
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值