安装NFS高可用集群
安装 nfs-client-provisioner
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
helm repo add azure http://mirror.azure.cn/kubernetes/charts/
helm install nfs-storage azure/nfs-client-provisioner --set nfs.server="172.12.17.200" --set nfs.path=/fs/nsf-data --set storageClass.name=nfs-hw
创建PVC
kubectl apply -f nfs-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc-test
spec:
storageClassName: "nfs-hw"
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
测试
kubectl apply -f nfs-test.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: nfsjob
spec:
template:
spec:
containers:
- name: bbox1
image: busybox
args:
- /bin/sh
- -c
- echo "1231231231" > /nfs-data/hello
volumeMounts:
- mountPath: "/nfs-data"
name: nfsdata
restartPolicy: Never
volumes:
- name: nfsdata
persistentVolumeClaim:
claimName: nfs-pvc-test
end
- 接下来去看看 NFS 服务器上是否有对应文件文件
K8S 集群是 v1.20+,在 nfs provisioner 创建 pvc 时,nfs provisioner 会报错
- selfLink在1.16版本以后已经弃用,在1.20版本停用。
- 要解决这个问题只需要在kube-api添加–feature-gates=RemoveSelfLink=false 即可, 参考:kubernetes-sigs/nfs-subdir-external-provisioner#25