kubernetes之Mysql 基于NFS的持久化存储

原创
01/03 18:46
阅读数 13

1、搭建互联互通的文件存储服务器集合。比如基于NFS的共享访问。
2、创建PV对象:网络存储卷。 kind: PersistentVolume   name: lbh-pv   storageClassName: nfs          #定义存储类的名字
3、创建PVC对象, kind: PersistentVolumeClaim  name: lbh-pvc   storageClassName: nfs      #存储类的名字,必须与PV资源一致(PV和PVC挂钩)
4、创建mysq deployment应用,设置镜像版本、端口、挂载目录、用户、密码以及PVC名称。
persistentVolumeClaim:  
28.          claimName: lbh-pvc          #指定PVC资源。(存储服务和PVC挂钩)
通过PVC将PV里面的存储目录挂载到mysql-server里


验证数据一致性:
kill掉这个node上的mysql-pod,重新将mysql-pod拉起在另外一个node上,进入该pod进行select,查看数据一致性。

也就是说不通node上的mysql-pod进行插入和修改删除后数据一致性。(持久化存储)

PV信息:目录、ip、存储类型名 /nfsdata/mysql-data ip 192.168.56.105 storageClassName: nfs 
PVC信息:空间、存储类型名 1GB storageClassName: nfs (此项目和PV建联)
mysql信息:kind:service name:mysql port:3306 app:mysql, deployment volumMoundt name:mysql-presistent-storage mountPath:/var/lib/mysql
volumes name:mysql-presistent-storage, persistentVolumeClaim: claimName:mysql-pvc(关联PVC)
也就是说/var/lib/mysql通过PVC,可以在PV里面的path/nfsdata/mysql-data  存储1个GB的数据。

启动lbh-mysql后进行创建表插入查询等操作,最终在PV的目录里找到数据库文件是否有刚才的操作。这样一个完整的基于NFS的mysql持久化存储就部署完成了。
数据流:后台业务服务------------redis服务--------------mysql服务------------PVC--------------PV--------------磁盘存储

基础概念:
PV:网络存储卷,存储资源声明,PV里面存储目录数据一致存在/持久化。
PVC:由存储服务调用的网络存储的请求,PVC消耗的是PV资源。

--------抛个问题PVC既然能设置大小,那么但凡调用该PVC的存储服务pod最多可以存储1GB大小数据,如果满了会怎么样?
 

参考:https://blog.51cto.com/u_13911055/2471239
https://steemit.com/kubernetes/@cloudman6/mysql-pv-pvc-kubernetes-41

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部