为了在 k8s 集群内, 统一的对 jar, 或者一些一次性加载的文件进行集中管理, 搭建了 NFS 服务进行托管, 该服务并不具备高可用, 低延迟的特性, 仅为临时性加载提供必要的支撑
使用 cifs 挂载
1
| $ sudo mount -t cifs //192.168.104.xxx/D/XXX /home/xxx -o username=xxxx,password=xxxx
|
安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| $ yum install -y rpcbind nfs-utils
# 编辑nfs 配置文件 把需要 nfs 管理的文件夹写入
$ vim /etc/exports
# /var/nfsdir *(insecure,rw,sync,no_root_squash)
#或者 加入 IP 是为了限制访问用
# /var/nfsdir 192.168.x.x(insecure,rw,sync,no_root_squash) 192.168.3.52(insecure,rw,sync,no_root_squash)
$ mkdir /var/nfsdir
# 开启服务, 并加入开机自启
$ systemctl enable rpcbind
$ systemctl enable nfs-server
$ systemctl start rpcbind
$ systemctl start nfs-server
$ exportfs -r
$ sudo firewall-cmd --permanent --add-port=111/tcp
$ sudo firewall-cmd --permanent --add-port=111/udp
$ sudo firewall-cmd --permanent --add-port=2049/tcp
$ sudo firewall-cmd --permanent --add-port=2049/udp
|
验证服务
1
2
3
4
5
6
7
8
9
10
11
12
| #在另外一台机器上安装
$ yum install -y nfs-utils
# 在一台与 nfs 服务网络互通的服务器上运行以下脚本, 如果输出 hello nfs, 则服务成功启动
$ mkdir /tmp/testnfs \
&& mount -t nfs 192.168.3.42:/var/nfsdir /tmp/testnfs \
&& echo "hello nfs" >> /tmp/testnfs/test.txt \
&& cat /tmp/testnfs/test.txt
# 在客户机上加入开机自动挂载
$ vim /etc/fstab
# 192.168.3.20:/var/nfsdir /var/nfsdir nfs defaults 0 0
|
查看挂载情况
umount
1
2
3
| # 该命令会 kill 所有使用 nfsdir 相关的进程
$ fuser -ck /var/nfsdir
$ umount /var/nfsdir
|
一些其他的命令
1
2
3
4
5
| # 查看 nfs 管理的目录
$ showmount -e 192.168.x.x
# 挂载目录到 nfs
$ mount -t nfs 192.168.x.x:/var/nfsdir /tmp/testnfs
|
- rpcinfo:查询rpc服务注册信息
- 参数:-p(指定ip,看那台机器的;什么都不加,就查看当前服务器的rpc信息)
- showmount:查看nfs服务器共享信息
- 参数:-e(指定ip,看那台机器的;什么都不加,就查看当前服务器的nfs信息)
- mount:挂载
- umount:卸载
- exportfs:nfs服务的管理命令
exports 参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| no_subtree_check:不检查父目录的权限
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置)
insecure:允许客户端从大于1024的tcp/ip端口连接服务器
rw:read-write,可读写的权限;
ro:read-only,只读的权限;
sync: 直接写(裸 IO)
async: 写入缓冲区 定时刷, 可能会带来数据丢失
root_squash: root 权限会变为 nobody(nfsnobody) UID GID
no_root_squash: root 用户连接时, 将对目录具有完全管理访问权限
all_squash: 所有登录者为 nobody
no_all_squash:与all_squash取反(默认设置);
anonuid: nobody 的 uid, uid 必须在/etc/passwd 中
anongid: 同 anonuid ,是 group ID
|