k8s nfs存储挂载出来
时间: 2025-05-19 14:13:21 浏览: 35
### 在 Kubernetes 中配置和挂载 NFS 存储
#### 1. 安装和配置 NFS 服务器
为了在 Kubernetes 中使用 NFS 存储,首先需要设置一个 NFS 服务器。以下是安装和配置 NFS 的基本步骤:
- **对于 Ubuntu 或 Debian 系统**,可以运行以下命令来安装必要的软件包:
```bash
apt-get update && apt-get install -y nfs-kernel-server nfs-common
```
- **对于 CentOS 或 RHEL 系统**,则需执行以下命令:
```bash
yum install -y nfs-utils.x86_64
```
完成安装后,编辑 `/etc/exports` 文件以定义共享目录及其权限[^1]。
例如,在 `/etc/exports` 文件中添加如下内容:
```
/mnt/nfs_from_master03 10.20.2.110(rw,sync,no_root_squash)
```
这表示将 `/mnt/nfs_from_master03` 目录共享给 IP 地址为 `10.20.2.110` 的客户端,并赋予其读写权限[^1]。
最后,重启 NFS 服务使更改生效:
```bash
systemctl restart nfs-kernel-server.service
```
#### 2. 创建 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC)
为了让 Kubernetes 使用 NFS 存储,可以通过声明 PV 和 PVC 来实现持久化存储的绑定。
##### a. 配置 PersistentVolume (PV)
下面是一个 YAML 文件示例,用于创建基于 NFS 的 PV:
```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
server: <nfs-server-ip>
path: "/path/on/nfs/server"
```
其中 `<nfs-server-ip>` 是 NFS 服务器的实际 IP 地址,而 `/path/on/nfs/server` 则是之前配置好的共享路径[^3]。
##### b. 配置 PersistentVolumeClaim (PVC)
接着,通过 PVC 请求上述 PV 提供的存储资源:
```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
```
#### 3. 将 NFS 卷挂载到 Pod 中
一旦成功创建了 PV 和 PVC,就可以将其挂载至容器内部作为卷的一部分。以下是一个简单的 Pod 配置文件示例:
```yaml
apiVersion: v1
kind: Pod
metadata:
name: nfs-pod
spec:
containers:
- name: app-container
image: nginx
volumeMounts:
- name: nfs-volume
mountPath: /usr/share/nginx/html
volumes:
- name: nfs-volume
persistentVolumeClaim:
claimName: nfs-pvc
```
此配置会将 NFS 卷挂载到 Nginx 容器中的 `/usr/share/nginx/html` 路径下[^3]。
---
### 总结
以上方法展示了如何从零开始搭建并集成 NFS 存储进入 Kubernetes 环境的过程。具体操作包括但不限于:NFS 服务器端的基础环境准备、Kubernetes 内部对象(如 PV/PVC)的设计以及最终应用层面对外部存储设备的有效利用[^2]。
阅读全文
相关推荐



















