在 CentOS 上安装 NFS 服务器

文章目录

    • [1. 在 CentOS 上安装 NFS 服务器](#1. 在 CentOS 上安装 NFS 服务器)
      • [1.1 安装 NFS 服务器软件包](#1.1 安装 NFS 服务器软件包)
      • [1.2 配置 NFS 共享目录](#1.2 配置 NFS 共享目录)
      • [1.3 配置 NFS 导出文件](#1.3 配置 NFS 导出文件)
      • [1.4 启动并启用 NFS 服务](#1.4 启动并启用 NFS 服务)
      • [1.5 导出共享目录](#1.5 导出共享目录)
      • [1.6 配置防火墙](#1.6 配置防火墙)
      • [1.7 检查 NFS 状态](#1.7 检查 NFS 状态)
    • [2. 在 CentOS 上安装 NFS 客户端](#2. 在 CentOS 上安装 NFS 客户端)
      • [2.1 安装 NFS 客户端软件包](#2.1 安装 NFS 客户端软件包)
      • [2.2 挂载 NFS 共享](#2.2 挂载 NFS 共享)
      • [2.3 配置自动挂载](#2.3 配置自动挂载)
      • [2.4 给所有用户读写权限](#2.4 给所有用户读写权限)
      • [2.5 检查 NFS 共享](#2.5 检查 NFS 共享)
    • [3. 在 Kubernetes 中使用 NFS 存储](#3. 在 Kubernetes 中使用 NFS 存储)
      • [3.1 创建 Persistent Volume (PV)](#3.1 创建 Persistent Volume (PV))
      • [3.2 创建 Persistent Volume Claim (PVC)](#3.2 创建 Persistent Volume Claim (PVC))
      • [3.3 创建 Pod 使用 NFS 存储](#3.3 创建 Pod 使用 NFS 存储)
      • [3.4 应用配置文件](#3.4 应用配置文件)
      • [3.5 验证](#3.5 验证)
      • [4. 总结](#4. 总结)

在 CentOS 上安装和配置 NFS 服务器与客户端相对简单。以下是详细步骤,包括设置 NFS 服务器、配置防火墙、安装客户端,以及在 Kubernetes 中使用 NFS。

1. 在 CentOS 上安装 NFS 服务器

1.1 安装 NFS 服务器软件包

首先,需要安装 NFS 服务器软件包:

bash 复制代码
sudo yum install -y nfs-utils

1.2 配置 NFS 共享目录

接下来,创建一个目录,用于共享数据:

bash 复制代码
sudo mkdir -p /mnt/nfs
sudo groupadd nogroup
sudo chown -R nobody:nogroup /mnt/nfs

nobody 和 nogroup 是 NFS 的默认用户和组。

1.3 配置 NFS 导出文件

然后,配置哪些目录可以通过 NFS 共享。编辑 /etc/exports 文件,并添加以下内容:

bash 复制代码
/mnt/nfs *(rw,sync,no_subtree_check)
  • rw: 允许客户端读写访问。
  • sync: 确保同步写入。
  • no_subtree_check: 禁止对子目录的检查。

保存并退出文件。

1.4 启动并启用 NFS 服务

启动 NFS 服务并设置为开机自启:

bash 复制代码
sudo systemctl start nfs-server
sudo systemctl enable nfs-server

1.5 导出共享目录

使共享目录立即生效:

bash 复制代码
sudo exportfs -a

1.6 配置防火墙

如果防火墙启用了,您需要允许 NFS 相关的端口:

bash 复制代码
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload

1.7 检查 NFS 状态

确保 NFS 服务器正在运行:

bash 复制代码
sudo systemctl status nfs-server

此时,NFS 服务器已经配置并运行在 CentOS 上,您可以在其他机器上挂载该共享目录。

2. 在 CentOS 上安装 NFS 客户端

2.1 安装 NFS 客户端软件包

在客户端机器上,您需要安装 NFS 客户端工具:

bash 复制代码
sudo yum install -y nfs-utils

2.2 挂载 NFS 共享

在客户端机器上,挂载 NFS 共享目录。例如,假设 NFS 服务器的 IP 地址是 192.168.1.100,共享目录是 /mnt/nfs,您可以执行以下命令:

bash 复制代码
sudo mount 192.168.56.115:/mnt/nfs /mnt/nfs-client

2.3 配置自动挂载

如果需要在客户端系统启动时自动挂载 NFS 共享,可以将挂载信息添加到 /etc/fstab 文件中:

bash 复制代码
192.168.56.115:/mnt/nfs /mnt/nfs-client nfs defaults 0 0

2.4 给所有用户读写权限

复制代码
sudo chmod 777 /mnt/nfs  # 给所有用户读写权限(可根据需求设置更严格的权限)

2.5 检查 NFS 共享

复制代码
showmount -e  192.168.56.115

3. 在 Kubernetes 中使用 NFS 存储

要在 Kubernetes 集群中使用 NFS 存储,您需要创建一个 PersistentVolume 和 PersistentVolumeClaim,让 Kubernetes Pod 挂载 NFS 共享。

3.1 创建 Persistent Volume (PV)

在 Kubernetes 中创建一个 PV,以便 Kubernetes 可以访问该共享目录。创建一个名为 nfs-pv.yaml 的文件,并定义如下内容:

yaml 复制代码
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 5Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany  # 多个 Pod 可以同时读写
  persistentVolumeReclaimPolicy: Retain  # 删除 PVC 时不会删除 PV
  nfs:
    path: /mnt/nfs  # NFS 服务器上的路径
    server: 192.168.56.115  # NFS 服务器的 IP 地址
  mountOptions:
    - nolock  # 避免锁定问题

3.2 创建 Persistent Volume Claim (PVC)

然后,您需要创建一个 PVC 来请求 NFS 存储资源。创建一个名为 nfs-pvc.yaml 的文件,并定义如下内容:

yaml 复制代码
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi

3.3 创建 Pod 使用 NFS 存储

现在,您可以创建一个 Pod 并将 NFS 存储挂载到容器中。以下是一个 Pod 的示例 nfs-pod.yaml:

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: nfs-pod
spec:
  containers:
    - name: app-container
      image: nginx  # 您可以选择其他镜像
      volumeMounts:
        - mountPath: /mnt/data  # 将 PVC 挂载到容器中的路径
          name: nfs-storage
          
  volumes:
    - name: nfs-storage
      persistentVolumeClaim:
        claimName: nfs-pvc  # 引用前面创建的 PVC

3.4 应用配置文件

使用 kubectl 应用这些配置文件:

bash 复制代码
kubectl apply -f nfs-pv.yaml
kubectl apply -f nfs-pvc.yaml
kubectl apply -f nfs-pod.yaml

3.5 验证

检查 PV 和 PVC 的状态,确保它们已正确绑定:

bash 复制代码
kubectl get pv
kubectl get pvc
kubectl get pods

4. 总结

  1. 在 CentOS 上安装并配置 NFS 服务器,设置共享目录并启动 NFS 服务。
  2. 在客户端机器上安装 NFS 客户端,挂载共享目录。
  3. 在 Kubernetes 中,创建 Persistent Volume (PV)、Persistent Volume Claim (PVC),并在 Pod 中挂载 NFS 存储。

这样就完成了 CentOS 安装和配置 NFS 服务的步骤,以及在 Kubernetes 中使用该 NFS 存储的过程。如果有任何问题,欢迎继续提问!

相关推荐
晚风叙码7 分钟前
Linux 进程概念(上):从冯诺依曼到进程调度
linux·运维·计算机外设
邪修king21 分钟前
Re:Linux系统篇(三十八):进程间通信ChapterSystem V 信号量深度解析|同步互斥、内核源码、C 指针多态、实战代码
java·linux·c语言
开开心心就好22 分钟前
电脑语音实时转文字工具,会议记录很省事
运维·服务器·前端·c#·ocr·perl·1024程序员节
坤坤子吖22 分钟前
Linux网络编程基础:从 MAC 到 IP,理解网络数据是怎么传输的
linux·网络·笔记·学习
波力海苔夹心脆67531 分钟前
C# 固高 GTS 运动控制卡入门:伺服上下电、Jog 点动与二维插补(WinForms 实战)
服务器·开发语言·c#·运动控制·伺服电机·winforms·固高
山东孙燕姿44 分钟前
前端框架升级:不敢动的组件怎么办
大数据·运维·服务器·网络·人工智能·前端框架
琥珀.9 小时前
mysql中json数组转列表查询
linux·运维·服务器
dawnsky.liu10 小时前
在 RHEL 中使用 goose 实现远程主机管理
linux·运维·ai
Linux运维技术栈11 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
云边云科技_云网融合12 小时前
连锁门店组网怎么做?SD-WAN 多分支组网的架构选型、部署与成本结构
服务器·数据库·php