使用NFS挂载目录

本文详细介绍了如何在服务器和客户端上配置NFS网络文件系统,包括在服务器上使用`vi`编辑`/etc/exports`文件设置访问权限,以及在客户端上使用`mount`命令挂载NFS目录,并探讨了自动挂载策略。

环境

服务器 10.32.8.22
客户端 10.32.8.21

 

服务器

    1)配置目录

vi /etc/exports
/save/nfs_dir 10.32.8.21(rw,no_root_squash)

    /save/nfs_dir 为访问目录

    10.32.8.21 允许访问的IP,如果设置为*表示 任意IP都可以访问

    rw 为可进行读写访问  

    no_root_squash 为拥有这个目录所有者的权限。

 

    2)启动NFS

service nfs start 

     如果有对/etc/exports有任何变动,同时要重启nfs的话,应该使用service nfs restart

 

客户端

    1)挂载

mkdir /save/nfs_dir
mount -t nfs -o rw 10.32.8.22:/save/nfs_dir /save/nfs_dir

     挂载的目录路径和名称可以不同 

 

    2)自动挂载

vi /etc/fstab
10.32.8.22:/save/nfs_dir /save/nfs_dir nfs defaults 0 0

 

   或者centos6中:

>vim /etc/rc.d/rc.local
mount -a
>chmod +x /etc/rc.d/rc.local

    -a 加载文件/etc/fstab中设置的所有设备

 

AUTOFS

    另外推荐研究autofs 服务,自动挂载 

### 在 Kubernetes 中配置 NFS 挂载目录 #### 安装 NFS 服务 为了使 Kubernetes 使用 NFS 进行存储卷挂载,需先确保 NFS 服务器已正确设置。对于基于 Debian 的系统,可以使用如下命令来安装必要的软件包: ```bash sudo apt update && sudo apt install nfs-kernel-server -y ``` 而对于 CentOS 或其他 Red Hat 衍生版本,则应通过 `yum` 来完成相同的操作[^1]。 #### 创建共享目录与导出规则 接着定义想要分享给 Kubernetes Pod 访问的具体文件夹位置,并编辑 `/etc/exports` 文件指定该路径及其对应的访问控制选项。例如: ```plaintext /mnt/nfs_share *(rw,sync,no_subtree_check,no_root_squash) ``` 此条目表示允许所有 IP 地址对该目录拥有读写权限而不压缩根用户身份验证[^2]。 #### 启动并启用 NFS 服务 修改完成后,记得启动 NFS 及其依赖的服务(如 RPC 绑定),并且将其设为随系统自启项之一: ```bash systemctl start rpcbind && systemctl start nfs-server systemctl enable rpcbind && systemctl enable nfs-server ``` 这一步骤同样适用于大多数 Linux 发行版上的 NFS 部署环境[^3]。 #### 准备 PersistentVolume (PV) 现在转向 Kubernetes 方面的工作——创建一个名为 `nfs-pv.yaml` 的 YAML 文件用于描述 PV 对象: ```yaml apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv spec: capacity: storage: 5Gi accessModes: - ReadWriteMany nfs: path: /mnt/nfs_share server: <NFS_SERVER_IP> ``` 这里指定了 NFS 提供者的位置以及所期望分配的空间大小;注意替换 `<NFS_SERVER_IP>` 成实际的 NFS 服务器地址[^4]。 #### 构建 PersistentVolumeClaim (PVC) 紧接着编写另一个 YAML 文件 `nfs-pvc.yaml` ,用来声明 PVC 请求资源: ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 5Gi ``` 上述配置请求了一个具有至少 5GB 大小且支持多实例并发读写的持久化卷。 #### 应用至集群内 最后利用 kubectl 工具提交这些对象定义到 K8s API Server 上使之生效: ```bash kubectl apply -f nfs-pv.yaml kubectl apply -f nfs-pvc.yaml ``` 此时便完成了整个过程,后续只需按照常规方式引用这个 PVC 就可以在应用中享受来自远程 NFS 存储带来的便利了。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值