一、准备工作

客户端安装 nfs-clinet

1
2
3
4
# RHEL 系节点
dnf install -y nfs-utils
# Debian/Ubuntu 节点
apt install -y nfs-common

验证

1
2
showmount -e nfs.qx.lab
mount -t nfs nfs.qx.lab:/data/nfs/k8s /mnt && umount /mnt # 不报错就行

二、helm 安装

  1. 添加仓库,更新仓库
1
2
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm repo update nfs-subdir-external-provisioner
  1. 安装
1
2
3
4
5
6
7
8
helm install nfs-provisioner \
nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--namespace nfs-system --create-namespace \
--set nfs.server=nfs.qx.lab \
--set nfs.path=/data/nfs/k8s \
--set storageClass.name=nfs-client \
--set storageClass.defaultClass=false \
--set storageClass.archiveOnDelete=true
  1. 验证
1
2
kubectl get pods -n nfs-system          # provisioner Running
kubectl get sc # 能看到 nfs-client

三、测一个PVC

  1. 临时创建
1
vim 001-test-pvc.yaml 
1
2
3
4
5
6
7
apiVersion: v1
kind: PersistentVolumeClaim
metadata: { name: test-pvc }
spec:
storageClassName: nfs-client
accessModes: ["ReadWriteOnce"]
resources: { requests: { storage: 1Gi } }
  1. 创建资源
1
kubectl apply -f 001-tets-pvc.yaml 
  1. 验证 pvc
1
kubectl get pvc test-pvc
  1. 删除 pvc
1
kubectl delete pvc test-pvc