MySQL的持久化部署(k8s与NFS)

Mysql部署

关于持久化部署mysql数据库

mysql数据库如果简单地部署在k8s集群上,当pods重启时,数据可能会造成丢失,经过查找资料,发现通过PV和PVC可以进行一个持久化的部署。

PV、PVC

  • PersistentVolume(持久卷) 和 PersistentVolumeClaim(持久卷申请)

  • PersistentVolume (PV) 是外部存储系统中的一块存储空间,由管理员创建和维护。与 Volume 一样,PV 具有持久性,生命周期独立于 Pod。

  • PersistentVolumeClaim (PVC) 是对 PV 的申请 (Claim)。PVC 通常由普通用户创建和维护。需要为 Pod 分配存储资源时,用户可以创建一个 PVC,指明存储资源的容量大小和访问模式(比如只读)等信息,Kubernetes 会查找并提供满足条件的 PV

1.什么是持久化?

本人找了好多文章都没有找到满意的答案,最后是从孙卫琴写的《精通Hibernate:Java对象持久化技术详解》中,看到如下的解释,感觉还是比较完整的。摘抄如下:

狭义的理解: “持久化”仅仅指把域对象永久保存到数据库中;广义的理解,“持久化”包括和数据库相关的各种操作。

●     保存:把域对象永久保存到数据库。

●     更新:更新数据库中域对象的状态。

●     删除:从数据库中删除一个域对象

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Kubernetes中,持久化存储是一种用于长期保存应用程序数据的机制。通过使用持久化存储,我们可以确保即使在Pod被删除或重启后,数据仍然可以保留下来并可用。 在Kubernetes中,有几种不同的方法可以实现持久化存储。 一种常见的方法是使用PersistentVolume(PV)和PersistentVolumeClaim(PVC)。 PersistentVolume是一种抽象的存储卷,它独立于Pod而存在,并且可以被多个Pod共享。 PersistentVolumeClaim是对PersistentVolume的声明,它允许Pod请求使用一个或多个PersistentVolume。 通过使用StorageClass,我们可以动态地创建PersistentVolume,并将其与PersistentVolumeClaim关联起来,从而自动完成存储的挂载和卸载过程。 另一种常见的方法是使用StatefulSet。StatefulSet是一种可以保证Pods的有序部署和唯一标识的控制器。在StatefulSet中,每个Pod都拥有一个唯一的标识符和稳定的网络标识符,并且可以保留其持久化数据。通过StatefulSet,我们可以轻松地部署和管理需要持久化存储的应用程序,例如MySQL和Redis等数据库。 除了上述方法之外,Kubernetes还支持其他一些存储解决方案,例如使用CSI(Container Storage Interface)插件来动态地挂载和管理存储卷,以及使用云提供商的块存储或文件存储来实现数据持久化。 总之,Kubernetes提供了多种持久化存储的选项,使得我们可以根据应用程序的需求选择合适的方法来保留数据,并确保数据的持久性和可靠性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值