在Kubernetes(K8S)中使用NFS创建PV(Persistent Volume)是一种常见的存储方案,可以为Pod提供持久化存储。在本文中,我将带领你学习如何通过几个简单的步骤来实现这一目标。

### 步骤概览
以下是使用NFS创建PV的整体步骤。


| 步骤 | 需要做的事情 |
|------------------------|-------------------------------|
| 步骤 1:安装NFS服务器 | 在主机上安装NFS服务器 |
| 步骤 2:创建PV配置 | 创建PV的YAML配置文件 |
| 步骤 3:创建PV对象 | 使用kubectl创建PV对象 |
| 步骤 4:创建PVC配置 | 创建PVC的YAML配置文件 |
| 步骤 5:绑定PV和PVC | 在Pod中使用PVC绑定创建的PV |


#### 步骤1:安装NFS服务器
在主机上安装NFS服务器,这里我们以Ubuntu为例进行演示。在终端中执行以下命令:

```bash
sudo apt update
sudo apt install nfs-kernel-server
```

#### 步骤2:创建PV配置
创建PV的YAML配置文件,定义NFS服务器的地址和挂载路径等信息。创建一个名为nfs-pv.yaml的文件,内容如下:

```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
nfs:
server: nfs-server-ip
path: /path/to/nfs/share
```

其中,`server`为NFS服务器的IP地址,`path`为NFS共享的路径,`accessModes`表示访问模式,`storage`表示存储容量。

#### 步骤3:创建PV对象
使用kubectl命令创建PV对象,执行如下命令:

```bash
kubectl apply -f nfs-pv.yaml
```

#### 步骤4:创建PVC配置
创建PVC的YAML配置文件,定义所需的存储类、访问模式等信息。创建一个名为nfs-pvc.yaml的文件,内容如下:

```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
```

#### 步骤5:绑定PV和PVC
在Pod的配置文件中使用PVC来绑定创建的PV,示例配置如下:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: test-pod
spec:
containers:
- name: test-container
image: nginx
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: nfs-volume
volumes:
- name: nfs-volume
persistentVolumeClaim:
claimName: nfs-pvc
```

在Pod的配置文件中,`persistentVolumeClaim.claimName`字段指定了要使用的PVC的名称,从而使Pod能够访问到NFS创建的PV。

通过以上步骤,你已经成功地在Kubernetes集群中使用NFS创建了PV,为Pod提供了持久化存储。希望本文能够帮助你更好地理解和实践这一过程。如果你有任何疑问或者遇到问题,欢迎在下方留言,我将尽力帮助解决。祝你学习进步!