文章目录
在本地部署k8s集群式, 对于pv, 需要使用nfs的方式来挂载外接磁盘, 便于多节点共用
部署 NFS 服务器
# 1.安装软件包
> apt-get install nfs-kernel-server nfs-common
# 2.修改配置文件
> vim /etc/exports
>
# 添加内容:
/data/k8s *(rw,sync,no_root_squash)
解析:
/data/k8s ——NFS服务器端的目录,用于与nfs客户端共享
* ——允许所有的网段访问,也可以使用具体的IP
rw ——挂接此目录的客户端对该共享目录具有读写权限
sync ——资料同步写入内存和硬盘
no_root_squash ——root用户具有对根目录的完全管理访问权限
no_subtree_check ——不检查父目录的权限
# 3. 新建共享目录
> mkdiir /data/k8s -p
# 4. 重启nfs
> service nfs-kernel-server restart
常用命令
#在安装NFS服务器时,已包含常用的命令行工具,无需额外安装。
#显示已经mount到本机nfs目录的客户端机器。
sudo showmount -e localhost
#将配置文件中的目录全部重新export一次!无需重启服务。
sudo exportfs -rv
#查看NFS的运行状态
sudo nfsstat
#查看rpc执行信息,可以用于检测rpc运行情况
sudo rpcinfo
#查看网络端口,NFS默认是使用111端口。
sudo netstat -tu -4
客户端配置
#在需要连接到NFS服务器的客户端机器上,
#需要执行以下命令,安装nfs-common软件包。
#apt会自动安装nfs-common、rpcbind等12个软件包
sudo apt install nfs-common
# 显示指定的($nfs_server)NFS服务器上export出来的目录
# $nfs_server为服务端主机名或IP地址
sudo showmount -e $nfs_server
# 创建本地挂载路径
sudo mkdir -p /data/use
#将NFS服务器上的目录,挂载到本地的/data/use/目录下
mount -t nfs $nfs_server:/data/use /data/use
mount -t nfs -o sync,noac $nfs_server:/data/freeswitch /data/freeswitch
# 自动挂载
vim /etc/fstab
$nfs_server:/data/freeswitch /data/freeswitch nfs defaults 0 0
$nfs_server:/data/freeswitch /data/freeswitch nfs sync,noac 0 0
参数4:
Async/sync 设置是否为同步方式运行,默认为async
auto/noauto 当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto
rw/ro 是否以以只读或者读写模式挂载
exec/noexec 限制此文件系统内是否能够进行"执行"的操作
user/nouser 是否允许用户使用mount命令挂载
suid/nosuid 是否允许SUID的存在
Usrquota 启动文件系统支持磁盘配额模式
Grpquota 启动文件系统对群组磁盘配额模式的支持
Defaults 同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置
参数说明
NFS常用参数
ro ——只读访问
rw ——读写访问
sync ——所有数据在请求时写入共享
async ——nfs在写入数据前可以响应请求
secure ——nfs通过1024以下的安全TCP/IP端口发送
insecure ——nfs通过1024以上的端口发送
wdelay ——如果多个用户要写入nfs目录,则归组写入(默认)
no_wdelay ——如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置
hide ——在nfs共享目录中不共享其子目录
no_hide ——共享nfs目录的子目录
subtree_check ——如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
no_subtree_check ——和上面相对,不检查父目录权限
all_squash ——共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash ——保留共享文件的UID和GID(默认)
root_squash ——root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash ——root用户具有根目录的完全管理访问权限
anonuid=xxx ——指定nfs服务器/etc/passwd文件中匿名用户的UID
anongid=xxx ——指定nfs服务器/etc/passwd文件中匿名用户的GID