在k8s环境下安装mysql数据库成了越来越多人的选择。但也存在容器重新创建时原数据文件丢失的问题,作为分布式开发王者的k8s当然不会这么轻易认输,这不外挂数据库文件的功能来了。今天我们来聊聊k8s下mysql数据库文件外挂到nfs服务器的实现方式。
1.安装nfs服务
本节略过,请读者了解相关内容。需要说明的是笔者只有一台机器,因此只安装了服务端,映射的文件地址为/nfs。/etc/exports的配置文件如下图:
2.安装数据库,并数据库文件持久化保存在nfs服务中
由两个文件组成,分别为mysql-rc.yaml和mysql-svc.yaml。其中mysql-rc.yaml用来创建pod,mysql-svc.yaml创建service给外部调用访问。mysql-rc.yaml内容如下:
mysql-svc.yaml内容如下:
分别启动这两个yaml文件
通过navicat访问数据库,并创建eims数据库,如下图:
3.测试
删除容器 ,如下图所示:
再次通过Navicat访问数据库,发现不能连接,如下图:
再次启动两个yaml文件,如下图
再次通过Navicat连接数据库,发现是可以连接上的,并且所创建的eims数据库也存在。如下图:
OK,证明使用nfs服务保存k8s内的mysql数据库文件是行得通的