k8s 使用 StorageClass 动态生成 NFS 类型的 PV
编辑于 2021-12-25 16:42:07 阅读 1559
关于旧版
https://github.com/kubernetes-retired/external-storage/tree/master/nfs-client/deploy
Compatible with kubernetes v1.5.x, v1.6.x, v1.7.x, v1.8.x, v1.9.x, v1.10.x, v1.11.x, v1.12.x, v1.13.x, v1.14.x Requests/depends on k8s.io/* repos with version kubernetes-1.14
如上,最多支持kubernetes v1.14.x。我的kubernetes版本是v1.22.0,一开始我没注意到这个,折腾了好久。。。
新版
https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner
下载master分支,里面有个deploy
目录
├── class.yaml
├── deployment.yaml
├── objects(此目录这里用不到)
├── rbac.yaml
├── test-claim.yaml
└── test-pod.yaml
修改deployment.yaml
...
image: registry.cn-hangzhou.aliyuncs.com/cuiw/k8s.gcr.io_sig-storage_nfs-subdir-external-provisioner:v4.0.2
...
- name: NFS_SERVER
#nfs的服务器ip
value: 192.168.10.99
- name: NFS_PATH
#nfs的共享目录
value: /nfs/data
volumes:
- name: nfs-client-root
nfs:
#nfs的服务器ip
server: 192.168.10.99
#nfs的共享目录
path: /nfs/data
...
其他文件可以不改
安装
kubectl apply -f .
测试
会生成一个目录default-test-claim-pvc-e77ac9e8-da08-43ae-9c10-63c45b9674f1,里面有个SUCCESS文件,说明成功了
[root@nfsFileSystem data]# cat /nfs/data/default-test-claim-pvc-e77ac9e8-da08-43ae-9c10-63c45b9674f1/SUCCESS
默认 StorageClass
如果安装KubeSphere,它要求默认 StorageClass
kubectl patch storageclass managed-nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
清除
kubectl delete -f .
参考
https://www.ibm.com/docs/zh/cloud-paks/cp-data/4.0?topic=storage-setting-up-nfs