5-2 基于StatefulSet运行MySQL一主多从

前言

MySQL一主多是从数据库生产级部署方案。第一可以实现数据的多处⾃动备份,加强了数据的安全性。第二实现数据库的拓展,通过多写分离提升数据库的负载性能。web等业务服务器的读操作由多个slave数据库实现,需要修改数据库的写操作在一个master数据库进行。数据文件会根据主从复制自动备份。


下面将通过k8s集群基于NFS,PV/PVC,ConfigMap,StatefulSet部署MySQL一主多从方案。



镜像准备

准备mysql镜像,数据库主镜像,上传到本地仓库:

docker pull mysql:5.7.36
docker tag mysql:5.7.36 easzlab.io.local:5000/myhub/mysql:5.7.36
docker push easzlab.io.local:5000/myhub/mysql:5.7.36

准备xtrabackup镜像,用于主从复制,上传到本地仓库:

docker pull registry.cn-hangzhou.aliyuncs.com/hxpdocker/xtrabackup:1.0
docker tag registry.cn-hangzhou.aliyuncs.com/hxpdocker/xtrabackup:1.0 easzlab.io.local:5000/myhub/xtrabackup:1.0
docker push easzlab.io.local:5000/myhub/xtrabackup:1.0

NFS准备

在NFS服务器192.168.100.155创建目录并共享:

# 创建3个共享目录,属主属组选root。
mkdir -p /data/k8sdata/myserver/mysql-datadir-{
   1..3}
chown root.root /data/k8sdata/myserver/mysql-datadir-{
   1..3}

# 提供共享服务,可共享的IP段为物理机IP,rw可读写,no_root_squash指root远程过去还是root,mysql需要root权限。
cat << EOF >> /etc/exports
/data/k8sdata/myserver/mysql-datadir-1 192.168.100.0/24(rw,no_root_squash)
/data/k8sdata/myserver/mysql-datadir-2 192.168.100.0/24(rw,no_root_squash)
/data/k8sdata/myserver/mysql-datadir-3 192.168.100.0/24(rw,no_root_squash)
EOF

# 重新加载,查看挂载情况
exportfs -r
exportfs -v

# nfs涉及端口较多,测试环境可关闭防火墙
systemctl disable --now firewalld

创建PV

一个mysql pod对应一个pv,pod数量不能大于pv总数。

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql-datadir-1
  namespace: myserver
spec:
  capacity:
    storage: 50Gi
  accessModes:
    - ReadWriteOnce
  nfs:
    path: /data/k8sdata/myserver/mysql-datadir-1 
    server: 192.168.100.155

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql-datadir-2
  namespace: myserver
spec:
  capacity:
    storage: 50Gi
  accessModes:
    - ReadWriteOnce
  nfs:
    path: /data/k8sdata/myserver/mysql-datadir-2
    server: 192.168.100.155

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql-datadir-3
  namespace: myserver
spec:
  capacity:
    storage: 50Gi
  accessModes:
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值