在 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

nobodynogroup 是 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 存储,您需要创建一个 PersistentVolumePersistentVolumeClaim,让 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 存储的过程。如果有任何问题,欢迎继续提问!

相关推荐
奔跑吧 android40 分钟前
【linux kernel 常用数据结构和设计模式】【数据结构 2】【通过一个案例属性list、hlist、rbtree、xarray数据结构使用】
linux·数据结构·list·kernel·rbtree·hlist·xarray
NiKo_W2 小时前
Linux 文件系统与基础指令
linux·开发语言·指令
Darkwanderor4 小时前
Linux 的权限详解
linux
2301_780789664 小时前
渗透测试真的能发现系统漏洞吗
服务器·网络·安全·web安全·网络安全
SabreWulf20204 小时前
Ubuntu 20.04手动安装.NET 8 SDK
linux·ubuntu·avalonia·.net8
不是吧这都有重名4 小时前
为什么ubuntu大文件拷贝会先快后慢?
linux·运维·ubuntu
sunshine-sm5 小时前
CentOS Steam 9安装 Redis
linux·运维·服务器·redis·centos
小熊h5 小时前
MySQL集群高可用架构——组复制 (MGR)
linux·数据库·mysql
小雪_Snow5 小时前
CentOS 7 下载教程
centos
棒棒的唐5 小时前
armbian平台ubuntu环境下telnet安装及启动,给pantherX2增加一个应急通道
linux·运维·armbian·telnetd