StorageClass动态卷的部署:
挑一个节点安装nfs服务作为nfs服务器
vim /etc/exports
nfs-client-provisioner源码地址:
cd volumes
:%s/default/nfs-client-provisioner/g
把里面所有default替换掉
vim deployment.yamlnfs-subdir-external-provisioner/deployment.yaml at master · kubernetes-sigs/nfs-subdir-external-provisioner · GitHub
:%s/default/nfs-client-provisioner/g
下载nfs-provisioner-v4.0.2.tar
导入worker节点
docker load -i nfs-provisioner-v4.0.2.tar
vim class.yaml
https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/blob/master/deploy/class.yaml
vim pvc.yaml
名称由命名空间+pvc名称+pv名称组成
vim pod.yaml
https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/blob/master/deploy/test-pod.yaml
kubectl apply -f pod.yaml
删除pvc,pv自动删除,服务器上的目录也自动删除
默认的 StorageClass 将被用于动态的为没有特定 storage class 需求的 PersistentVolumeClaims 配置存储:(只能有一个默认StorageClass) • 如果没有默认StorageClass,PVC 也没有指定storageClassName 的值,那么意 味着它只能够跟 storageClassName 也是“”的 PV 进行绑定。
此时pvc的yaml文件中可以不用指定存储类名为nfs-client,因为其为默认类,当不指定存储类时生效,指定时被覆盖。