NFS服务器搭建
1.yum install nfs-utils -y
2.vi /etc/exports
/nfsdata 192.168.30.0/24 (insecure,rw,async,no_root_squash) 括号里面的设置一定要这么写 否则挂载后root用户都没有写的权限
ro:read-only,只读;
sync:文件同时写入硬盘和内存;由于我们的日志需要同步写,所有用sync选项。
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。
NFS客户端
yum install nfs-utils -y
showmount -e 192.168.30.1
Rancher创建NFS的PV
1.只能手动添加PV 不能自动创建PV
2.创建PVC
到这里是完成了PV和PVC的绑定 这个PV一旦和某个PVC完成绑定后就不能再被其他的PVC绑定。也就是说NFS服务中的一个目录只能被mount一次 不能多次mount
3.工作负载和PVC的绑定
4.在pod所在的主机上查看volume的挂载情况
pod中的某个目录当成了nfs的客户端挂载到了NFS服务器的远程目录形成了一个共享卷
5.查看不同pod中挂载路径
NFS共享存储方式二
搭建好NFS服务器后 不一定要使用PV和PVC的机制来实现共享存储
把nfs服务器挂载到每个主机的目录 然后在容器中映射到指定的主机目录一样可以实现多个容器的共享读写
在每个主机目录挂载 mount -t nfs -o rw 192.168.30.109:/nfsdata nfsdata
远程目录的数据已经映射到本地主机的对应目录 然后再添加主机映射卷即可.在映射卷的主机目录指定为本机挂载目录即可
NFS服务端跨防火墙
在配置好一台NFS服务器,建立好分享目录,刷新配置以后,在另一台客户机中使用showmount -e 出现报错:
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
1.修改NFS服务端的配置文件并重启NFS服务
2.客户端连接服务端
3.开放服务端端口
4.连接成功
Linux之间实现文件共享
1.安装包占用的空间超过几十G
2.使用scp拷贝的时候网速很慢