NFS = Network File System(网络文件系统)
他的主要作用有:
- 让多台计算机通过网络共享文件系统,就像访问本地磁盘一样
- 可以跨不同机器读写同一份文件
- 多用于 Linux/Unix 系统之间共享数据
另外:K8s中容器需要一个文件系统可以存放数据,因为如果没有专门的地方存储数据的话,如果K8s发生问题需要重新生成容器,就会导致容器中的数据丢失,因此使用NFS划分一个区域用作容器访问的文件夹。(可以理解成windows的共享文件夹)
NFS分客户端和服务端
服务端用于建立文件系统,提供共享文件空间。而客户端则连接到服务端,对共享文件的访问和修改。
服务端安装步骤:
1、安装nfs工具
yum install nfs-utils -y
2、创建exports文件
vim /etc/export
在文件中写入
/root/nfs_root/ *(insecure,rw,sync,no_root_squash)
/root/nfs_root 是要共享的文件夹(如果没有文件夹要创建)
* 是指所有ip都可访问
Insecure是允许客户端通过 非特权端口(>1024)访问 NFS,通常默认只允许 1024 以下端口
rw 可读写(Read/Write),客户端可以修改服务器上的文件
sync 所有写操作都是 同步写入 服务器磁盘,保证数据安全(但写入速度可能慢)
no_root_squash 禁止 root 映射,客户端 root 用户在访问时保持 root 权限
3、设置自启动
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server
4、刷新exports设置
exportfs -r
exportfs命令可以检查是否生效
exportfs
客户端安装步骤:
1、安装nfs工具
yum install -y nfs-utils
2、挂载文件夹
创建一个文件夹挂载,这里创建 /mnt/nfs_root
执行以下挂载命令:
mount -t nfs 192.168.1.1:/root/nfs_root /mnt/nfs_root
注意:此处192.168.1.1是示例IP,实际要填nfs服务端的ip地址,上面命令的意思是指将192.168.1.1的/root/nfs_root文件夹挂载到当前客户端的/mnt/nfs_root文件夹下,访问/mnt/nfs_root其实就是访问192.168.1.1的/root/nfs_root文件夹
挂载完毕可以写入一个文件然后到服务端查看是否存在,存在即挂载成功
开机自动挂载
vim /etc/fstab
写入以下内容
192.168.1.1:/root/nfs_root /mnt/nfs_root nfs defaults 0 0