k8s部署高可用PostgreSQL

815 阅读1分钟

使用stolon部署高可用集群

克隆所需的文件

# 克隆所需的yaml文件

[root@master ~]#  git clone https://github.com/sorintlab/stolon.git

# 进入example/kubernetes目录,可以看到有如下文件

[root@master kubernetes]# ls
image  postgresql_upgrade.md  README.md  role-binding.yaml  role.yaml  secret.yaml  stolon-keeper.yaml  stolon-proxy-service.yaml  stolon-proxy.yaml  stolon-sentinel.yaml

修改密码

# 因为Secret中只能保存base64格式的密码,所以生成一个base64的密码

[root@master kubernetes]# echo -n "123456"  | base64
MTIzNDU2

# 使用上面生成的密码修改配置secret.yaml

[root@master kubernetes]# cat secret.yaml 
---
apiVersion: v1
kind: Secret
metadata:
    name: stolon
type: Opaque
data:
    password: MTIzNDU2   # 此处修改生成的密码

使用NodePort的方式对外提供服务

# 修改 stolon-proxy-service.yaml文件

apiVersion: v1
kind: Service
metadata:
  name: stolon-proxy-service
spec:
  ports:
    - port: 5432
      targetPort: 5432
      nodePort: 31000  # 指定端口
  type: NodePort       # 类型为NodePort
  selector:
    component: stolon-proxy
    stolon-cluster: kube-stolon

执行yaml文件

kubectl apply -f .

初始化数据库

kubectl run -i -t stolonctl --image=sorintlab/stolon:master-pg10 --restart=Never --rm -- /usr/local/bin/stolonctl --cluster-name=kube-stolon --store-backend=kubernetes --kube-resource-kind=configmap init

测试连接

psql -h 172.16.183.134 postgres -U stolon -W

参考文章

blog.csdn.net/liuchao6668…