k8s中使用MySQL共享存储_k8s使用NFS做动态存储做mysql容器主从同步

本文档详细记录了在Kubernetes(k8s)环境中使用NFS作为动态存储来实现MySQL容器的主从同步过程。通过搭建NFS服务器,配置NFS动态插件,创建并测试PersistentVolumeClaim(PVC),最终部署StatefulSet来确保数据共享和主从复制。
摘要由CSDN通过智能技术生成

k8s里面存储一直是比较难搞得,之前做的静态存储,写这篇文档记录一下动态存储创建的过程。

使用动态存储的好处是开发者可以更关注自己的开发环境,不用关心后端的资源,还有就是更换存储类型不用做大的改变,只需切换一下storageclassName即可。

根据这篇博客来的!谢谢博主!!!

https://www.cnblogs.com/00986014w/p/9406962.html

我把大致上思路分成三步:1.搭建NFS服务器;2.准备NFS动态插件的配置文件;3.创建一个pvc查看测试一下结果。

1.搭建NFS服务器:centos7 下面使用yum安装 :

yum install nfs-utils

systemctl start nfs

systemctl enable nfs

2.准备nfs插件配置文件:

第一步先测试一下静态存储,测试没有问题了接着往下看动态存储

---

apiVersion: v1

kind: PersistentVolume

metadata:

name: mypv1

spec:

capacity:

storage: 4Gi

accessModes:

- ReadWriteOnce

persistentVolumeReclaimPolicy: Recycle

nfs:

path: [已配置的NFS系统的路径]

server: [已配置的NFS系统的IP地址]

---

kind: PersistentVolumeClaim

apiVersion: v1

metadata:

name: mypvc1

spec:

accessModes:

- ReadWriteOnce

resources:

requests:

storage: 100Mi

动态存储配置文件

---

kind: ServiceAccount

apiVersion: v1

metadata:

name: nfs-client-provisioner

---

kind: ClusterRole

apiVersion: rbac.authorization.k8s.io/v1

metadata:

name: nfs-client-provisioner-runner

rules:

- apiGroups: [""]

resources: ["persistentvolumes"]

verbs: ["get", "list", "watch", "create", "delete"]

- apiGroups: [""]

resources: ["persistentvolumeclaims"]

verbs: ["get", "list", "watch", "update"]

- apiGroups: ["storage.k8s.io"]

resources: ["storageclasses"]

verbs: ["get", "list", "watch"]

- apiGroups: [""]

resources: ["events"]

verbs: ["create", "update", "patch"]

---

kind: ClusterRoleBinding

apiVersion: rb

一、前置条件 1、已经有K8S环境,可参考K8S安装手册; 2、需要安装Helm,可以参考Helm安装手册。 二、创建MySQL主从部署 1、创建mysql-operator 通过mysql-operator可以方便的管理MySQL集群,它的安装方式可以参考mysql-operator安装手册。 2、创建MySQL主从部署 在K8S搭建MySQL主从,一般使用MySQL官方提供的镜像,可以使用以下命令创建MySQL主从部署。 ``` helm install mysql-replication --set primary.mysqlRootPassword=root,secondary.mysqlRootPassword=root custom-mysql ``` 执行上述命令后,会在K8S创建mysql-replication的部署实例。 三、验证MySQL主从 1、查看MySQL主从状态 可以使用以下命令查看MySQL主从状态。 ``` kubectl exec -it mysql-replication-0 -- bash -c "mysql -uroot -p'root' -e 'SHOW MASTER STATUS\G'" kubectl exec -it mysql-replication-1 -- bash -c "mysql -uroot -p'root' -e 'SHOW SLAVE STATUS\G'" ``` 2、测试主从复制 可以使用以下命令在MySQL主节点上创建一个测试表。 ``` kubectl exec -it mysql-replication-0 -- bash -c "mysql -uroot -p'root' -e 'CREATE DATABASE test;USE test;CREATE TABLE t1 (id int primary key,name varchar(20));INSERT INTO t1 VALUES (1,\"test\");'" ``` 然后在MySQL从节点上查询该表。 ``` kubectl exec -it mysql-replication-1 -- bash -c "mysql -uroot -p'root' -e 'SELECT * FROM test.t1;'" ``` 如果查询结果和主节点上的结果一致,则说明主从复制已经成功。 四、总结 通过上述步骤,我们可以在K8S搭建MySQL主从部署,并且验证了主从复制的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值