Kubernetes 之 MySQL 持久存储和故障转移
一、规划
我们接着之前的文档的架构规划进行下面的操作。
IP
角色
192.168.1.200
k8s-master
192.168.1.201
k8s-node01
192.168.1.202
k8s-node02
192.168.1.203
k8s-store
我们演示如何为 MySQL 数据库提供持久化存储,主要分为下面几个步骤:
创建 PV 和 PVC。
部署 MySQL。
向 MySQL 添加数据。
模拟节点宕机故障,Kubernetes 将 MySQL 自动迁移到其他节点。
验证数据一致性。
二、部署
1、创建 PV 和 PVC
我们 PV 的配置文件mysql-pv.yaml如下:
创建 PV。
PVC 的配置文件mysql-pvc.yaml内容如下:
创建 PVC。
2、部署 MySQL
MySQL 的配置文件mysql.yaml如下:
PVC mysql-pvc Bound 的 PV mysql-pv 将被 mount 到 MySQL 的数据目录 /var/lib/mysql。
3、更新 MySQL 数据
MySQL 被部署到 k8s-node02,下面通过客户端访问 Service mysql:
我们在mysql库中创建一个表myid,然后在表里新增几条数据。
4、故障转移
我们现在把 node02 机器关机,模拟节点宕机故障。
一段时间之后,Kubernetes 将 MySQL 迁移到 k8s-node01。
验证数据的一致性。
MySQL 服务恢复,数据也完好无损,我们可以可以在存储节点上面查看一下生成的数据库文件。
Last updated