MySQL 如何使用 PV 和 PVC?

本节演示如何为 MySQL 数据库提供持久化存储,步骤为:node

  1. 建立 PV 和 PVC。mysql

  2. 部署 MySQL。sql

  3. 向 MySQL 添加数据。数据库

  4. 模拟节点宕机故障,Kubernetes 将 MySQL 自动迁移到其余节点。学习

  5. 验证数据一致性。spa

首先建立 PV 和 PVC,配置以下:3d

mysql-pv.ymlrest

mysql-pvc.ymlcode

建立 mysql-pv 和 mysql-pvcblog

接下来部署 MySQL,配置文件以下:

PVC mysql-pvc Bound 的 PV mysql-pv 将被 mount 到 MySQL 的数据目录 var/lib/mysql

MySQL 被部署到 k8s-node2,下面经过客户端访问 Service mysql

kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -- mysql -h mysql -ppassword


更新数据库:

① 切换到数据库 mysql。

② 建立数据库表 my_id。

③ 插入一条数据。

④ 确认数据已经写入。

关闭 k8s-node2,模拟节点宕机故障。

一段时间后,Kubernetes 将 MySQL 迁移到 k8s-node1

验证数据的一致性:

MySQL 服务恢复,数据也无缺无损。

小结

本章咱们讨论了 Kubernetes 如何管理存储资源。

emptyDir 和 hostPath 类型的 Volume 很方便,但可持久性不强,Kubernetes 支持多种外部存储系统的 Volume。

PV 和 PVC 分离了管理员和普通用户的职责,更适合生产环境。咱们还学习了如何经过 StorageClass 实现更高效的动态供给。

最后,咱们演示了如何在 MySQL 中使用 PersistentVolume 实现数据持久性。

相关文章
相关标签/搜索