公司内网搭建k8s系统,需要用到共享存储功能,这里用nfs作为共享存储,通过NFS服务我们可以方便的读写服务器上的文件,本文是在ubuntu环境上安装nfs
环境
系统版本 | ip地址 | 软件 |
---|---|---|
20.04.2 LTS(ubuntu) | 192.168.8.231 | NFS服务端 |
20.04.2 LTS(ubuntu) | 192.168.8.248 | NFS客户端 |
NFS 服务端的安装
在服务端(192.168.8.231)的机器上操作
- 创建nfs目录作为共享文件目录
root@dell:/# mkdir -p /data/nfs
- 修改权限 给文件夹增加读写权限
root@dell:/# chmod a+rw /data/nfs
- 安装NFS服务端
root@dell:/# apt-get install -y nfs-kernel-server
- 配置NFS服务目录,编辑nfs的配置文件/etc/exports,在尾部新增一行,内容如下:
root@dell:/# cat >> /etc/exports <<EOF
/data/nfs *(rw,sync,no_subtree_check,no_root_squash,insecure)
EOF
说明:
*
表示任何IP都可以访问.rw
是读写权限.sync
是同步权限,no_subtree_check
表示如果输出目录是一个子目录,nfs服务器不检查其父目录的权限.no_root_squash
登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限- 让配置生效
root@dell:/# exportfs -r
- 查看结果
root@dell:/# exportfs
/data/nfs <world>
- 启动rpcbind、nfs-server服务
root@dell:/# systemctl restart rpcbind && systemctl enable rpcbind
root@dell:/# systemctl restart nfs-server && systemctl enable nfs-server
- 查看RPC服务的注册情况
root@dell:/# rpcinfo -p localhost | grep 'nfs'
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100003 3 udp 2049 nfs
- showmount测试
root@dell:/# showmount -e 192.168.8.231
Export list for 192.168.8.231:
/data/nfs *
到这里,NFS服务端就准备好了,接下来我们准备客户端
NFS 客户端的安装
在192.168.8.248机器上执行
- 安装客户端应用
root@x201:/# apt-get install -y nfs-common
- 创建文件夹并挂载nfs服务测试
root@x201:/# mkdir -p /data/test/nfs
root@x201:/# mount 192.168.8.231:/data/nfs /data/test/nfs
- 查看挂载情况
root@x201:/# df -Th | grep '192.168.8.231'
192.168.8.231:/data/nfs nfs4 176G 8.3G 159G 5% /data/dell/nfs
可以看到,176G空间,这个空间是nfs服务端的空间。此时已经挂载成功。
NFS 的测试
- 在客户端目录 /data/test/nfs 下创建一个文件夹并存入文件
root@x201:/# mkdir -p /data/test/nfs/test1
root@x201:/# cat > /data/test/nfs/test1/test1.txt <<EOF
我是从客户端192.168.8.248 写入的
EOF
- 在服务端目录 /data/nfs 查看
root@dell:/# ls /data/nfs
test1
root@dell:/# cat /data/nfs/test1/test1.txt
我是从客户端192.168.8.248 写入的
可以看到文件已经写入到共享目录了
- 在客户端机器取消挂载
#取消挂载
root@x201:/# umount /data/dell/nfs
#查看文件
root@x201:/# ls /data/dell/nfs/
可以看到客户端文件已经消失
注意:取消挂载后客户端文件消失 服务端文件还存在。