引言
在kubernetes使用的过程中,有很多数据需要持久化保存。而kubernetes本身不能实现这样的功能,所以需要提供外部存储来实现。nfs网络文件系统,能良好支持pv动态创建等功能,是一个不错的持久化保存方式。今天将这一部分内容作以整理。
阅读这篇文章之前,你应当已经理解了DNS服务器的搭建以及磁盘管理的相关操作。
【网络篇】如何搭建自己的DNS服务器
【Linux篇】Linux 磁盘管理
【Linux篇】磁盘lvm管理(PV,VG,LV,PE)
1. 设置磁盘挂载
磁盘分为系统盘和数据盘,VMware Workstation 默认有系统盘,我们单独添加数据盘。
# 格式化磁盘
mkfs.xfs /dev/sdb
# 创建挂载目录
mkdir /sdb
# 设置持久化挂载
vi /etc/fstab
说明:前面是tab,后面0和0是空格。
# 挂载
mount /dev/sdb /sdb
2. 安装nfs
yum install -y nfs-utils
# 设置配置文件(服务端)
vi /etc/exports
# 内容: /sdb *(rw,sync,no_root_squash)
说明:rw表示读写权限。sync表示支持数据同步。no_root_squash表示权限为root用户。
# 启动服务
systemctl enable --now nfs-server
# 检查验证
systemctl status nfs-server
3. 如何在kubernetes集群中使用
在集群内也需要安装nfs-utils。作为客户端使用。
# 安装nfs
yum install -y nfs-utils
# 查看可挂载点
showmount -e nfs.kubernetes.com
说明:使用k8s-master02节点演示,显示nfs.kubernetes.com的/sdb可以挂载。
同样的道理,我将k8s-master02的/sdb挂载到nfs.kubernetes.com的/sdb。
mount -t nfs nfs.kubernetes.com:/sdb /sdb
说明:如果没有DNS服务器,就使用ip地址。
检查验证:
/sdb目录下的文件成功同步了。后期在kubernetes集群中使用pv和pvc,我们将pv挂载到此目录下,就可以实现数据持久化保存。
4. 扩展
如何取消挂载?
# 和nfs取消挂载
umount -l /sdb
# 和本地磁盘取消挂载
umount -l /dev/sdb
说明:选项 –l 并不是马上umount,而是在该目录空闲后再umount。