k8s NFS 静态 PV 配置教程
时间: 2025-06-05 17:09:45 浏览: 24
### Kubernetes NFS 静态持久卷 (PV) 配置指南
在 Kubernetes 中配置 NFS 静态持久卷(Persistent Volume, PV),可以通过定义 YAML 文件来实现。以下是详细的说明和步骤:
#### 定义静态 PV 的 YAML 文件
要创建一个 NFS 类型的静态 PV,需要编写如下所示的 `pv.yaml` 文件。
```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv1
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: manual-nfs
nfs:
path: /nfsdata
server: 172.25.0.17
```
- **capacity**: 表示该存储卷的最大容量,在此例子中设置为 1GB[^3]。
- **accessModes**: 定义访问模式,常见的有 `ReadWriteOnce`, `ReadOnlyMany`, 和 `ReadWriteMany`[^3]。
- **persistentVolumeReclaimPolicy**: 当 PVC 被删除时的行为策略,可选值包括 `Retain`, `Recycle`, 或者 `Delete`。
- **storageClassName**: 存储类名称用于区分不同的存储提供方式,这里命名为 `manual-nfs`。
- **nfs.path** 和 **nfs.server**: 这些字段指定 NFS 服务器的具体路径以及 IP 地址或域名[^3]。
#### 应用并验证 PV 是否成功创建
通过 kubectl 工具应用上述文件:
```bash
kubectl apply -f pv.yaml
```
随后可以查看新创建的 PV 状态是否正常:
```bash
kubectl get pv
```
如果一切顺利的话,应该能看到名为 `nfs-pv1` 的条目及其状态应标记为 “Available”。
#### 绑定 PVC 到 PV
为了使 Pod 可以利用这个预先准备好的存储空间,则还需要建立相应的 PersistentVolumeClaim 请求对象。下面是一个简单的声明实例:
```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: example-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: manual-nfs
```
一旦提交了这样的 PVC 请求之后,Kubernetes 就会尝试将其与之前定义的那个符合条件的 PV 关联起来形成绑定关系。此时再运行命令检查两者之间的关联情况即可确认操作成果:
```bash
kubectl describe pvc example-pvc
```
最后一步就是在实际的工作负载比如 Deployment 或者单独的 Pod 定义里引用刚才所生成出来的 PVC 来完成整个流程闭环。
---
###
阅读全文