一、问题产生的背景
笔者准备在Kubernetes基础之上搭建MySQL的主从集群,为了提高MySQL的高并发性,准备使用Kubernetes提供的持久卷(PersistentVolumes),将MySQL的data目录提供集群改成集群共享,这样一个节点修改了data文件之后,另一个节点也会实时更新可见,由此笔者准备使用NFS Server提供Kubernetes的持久卷支持。
二、最终要达成的目标
将一台物理机的/home/data目录提供NFS存储共享。
三、解决方案
1、安装nfs和rpcbind软件依赖包
命令:
yum install -y nfs-utils rpcbind
2、创建文件存储共享目录,笔者这里将/home/data目录用于提供存储共享
命令:
mkdir /home/data
3、编辑NFS服务端的配置文件
命令:
vim /etc/exports
4、在配置文件中指明需要进行共享存储的目录
新增:/home/data [local ip address]/24(rw,sync)
5、启动nfs服务并设置为开机启动
命令:
systemctl start nfs.service && systemctl enable nfs.service
6、启动rpcbind服务并设置为开机启动
命令:
systemctl start rpcbind.service && systemctl enable rpcbind.service
7、验证配置是否成功
命令:
exportfs
8、上述安装成功以后,NFS服务端便已安装完成,下面将在需要与NFS服务通信的Kubernetes节点上进行后续服务的安装,这里我们分别在master、node1、node2(要与NFS服务端通信的主机)中安装nfs-utils工具包
命令:
yum install -y nfs-utils
9、在各节点查看指定IP上可以被共享的挂载点
命令:
showmount -e [nfs server ip address]
10、在各节点上将nfs共享存储挂载到各节点本地,需在各节点上执行下面的命令
命令:
mount [nfs server ip address]:/home/data /mnt