Loading... > 在 Kubernetes 集群中,可以通过 Helm 部署 `nfs-subdir-external-provisioner` 来动态管理持久卷,这是一个存储资源自动调配器,可以将现有的 NFS 服务器通过持久卷声明来支持 持久卷的动态分配 ### 前置条件: - NFS服务器正常运行并且能够与集群通信 - 安装 Helm - 集群正常运行 ### 添加仓库 将 `nfs-subdir-external-provisioner` 的 Helm 仓库添加到本地 ```bash helm repo add nfs-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner helm repo update ``` #### 部署 下载nfs-subdir-external-provisioner的 chart 到本地 ```bash helm pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner --untar ``` 编辑其目录中的 `values.yaml` 下面是示例,, ```yaml cat values.yaml | grep -v "#" replicaCount: 1 strategyType: Recreate image: repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner tag: v4.0.0 pullPolicy: IfNotPresent imagePullSecrets: [] nfs: server: 10.0.80.253 # nfs服务端ip地址 path: /data # nfs共享目录 mountOptions: volumeName: nfs-subdir-external-provisioner-root reclaimPolicy: Retain storageClass: create: true defaultClass: true name: nfs-default # Storage Class的名字 ....... # 下面的内容省略 ``` 使用自定义的`values.yaml`进行部署,这里我选择了创建一个独立的namespace便于管理 ```bash helm install nfs-provisioner ./nfs-subdir-external-provisioner -f values.yaml -n nfs-provisioner --create-namespace ``` ### 验证并测试 检查存储类是否创建成功 ```bash kubectl get storageclass ``` 测试动态卷分配 创建 `testpvc.yaml` 并应用 ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: test-claim spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi storageClassName: custom-nfs ``` ```bash kubectl apply -f testpvc.yaml -n nfs-provisioner ``` 验证 PVC 是否绑定成功 ```bash kubectl get pvc -n nfs-provisioner ``` 接下来可以起个pod进行验证 ```yaml apiVersion: v1 kind: Pod metadata: name: test-nfs-provisioner spec: containers: - name: busybox image: busybox command: ["/bin/sh", "-c", "echo 'nfstest' > /mnt/testfile && sleep 3600"] volumeMounts: - name: test-storage mountPath: /mnt volumes: - name: test-storage persistentVolumeClaim: claimName: test-claim ``` ```bash kubectl apply -f testpod.yaml -n nfs-provisioner ``` pod正常运行之后可以登录到nfs服务器查看到共享目录生成了一个目录和文件表明成功。。 Last modification:April 25, 2025 © Allow specification reprint Support Appreciate the author Like 如果觉得我的文章对你有用,请随意赞赏