Kubernetes (K8S) 是一个开源的容器编排平台,提供了自动化部署、扩展和管理容器化应用程序的功能。在K8S中,Persistent Volume (PV) 用于存储容器中的数据,并提供持久化存储。在本文中,我们将介绍如何实现“k8s 常用pv服务器”。

整体流程如下:

| 步骤 | 操作 |
| ----| ---- |
| 1 | 部署 PV 服务器 |
| 2 | 创建 PersistentVolume (PV) |
| 3 | 创建 PersistentVolumeClaim (PVC) |
| 4 | 在 Pod 中使用 PVC |

接下来我们将逐步介绍每一步需要做的操作以及相应的代码示例:

### 1. 部署 PV 服务器

在K8S中,可以使用各种存储后端来支持PV。这里我们选择使用HostPath作为PV服务器存储后端,它会将数据存储在Node上的本地文件系统中。

```yaml
# pv-server.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-server
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/data"
```

首先,创建一个名为`pv-server.yaml`的YAML文件,并将以上内容复制到文件中。然后执行以下命令创建PV服务器:

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

### 2. 创建 PersistentVolume (PV)

接下来,我们需要创建一个PersistentVolume,关联到我们刚刚部署的PV服务器。

```yaml
# pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-example
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: ""
hostPath:
path: "/data/pv-1"
```

将以上内容保存到`pv.yaml`文件中,然后执行以下命令创建PV:

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

### 3. 创建 PersistentVolumeClaim (PVC)

现在我们需要创建一个PersistentVolumeClaim,用于申请PV中的存储空间。

```yaml
# pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-example
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
```

保存以上内容到`pvc.yaml`文件中,然后执行以下命令创建PVC:

```bash
kubectl apply -f pvc.yaml
```

### 4. 在 Pod 中使用 PVC

最后,我们可以在Pod的配置文件中引用PVC来挂载PV中的存储空间。

```yaml
# pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: test-pod
spec:
containers:
- name: test-container
image: nginx
volumeMounts:
- mountPath: "/data"
name: data-volume
volumes:
- name: data-volume
persistentVolumeClaim:
claimName: pvc-example
```

以上是一个简单的Pod配置文件示例,将PVC挂载到`/dat`路径下。将内容保存到`pod.yaml`文件中,然后执行以下命令创建Pod:

```bash
kubectl apply -f pod.yaml
```

至此,我们已经成功实现了“k8s 常用pv服务器”的部署和使用。希望这篇文章对你有所帮助,让你更好地理解和使用K8S中的PV和PVC。如果你有任何问题或疑惑,欢迎在下方留言,我们会尽力帮助你解决。