K8S部署csi 实现动态PV/PVC
k8s创建nfs
kubectl create ns nfs
kubectl create -f <(curl -s https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/deploy/example/nfs-provisioner/nfs-server.yaml | sed 's/namespace: default/namespace: nfs/')
k8s创建install-csi-driver-v4.8.0
https://github.com/kubernetes-csi/csi-driver-nfs/blob/master/docs/install-csi-driver-v4.8.0.md
root@k8s-master01:~# curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/v4.8.0/deploy/install-driver.sh | bash -s v4.8.0 --
root@k8s-master01:~# kubectl get pod -n kube-system -l app=csi-nfs-node
NAME READY STATUS RESTARTS AGE
csi-nfs-node-87jfz 3/3 Running 3 (20s ago) 5m53s
csi-nfs-node-9742s 3/3 Running 1 (4m16s ago) 5m53s
csi-nfs-node-p65rl 3/3 Running 1 (4m19s ago) 5m53s
csi-nfs-node-qb7h6 3/3 Running 1 (4m24s ago) 5m53s
root@k8s-master01:~# kubectl get pod -n kube-system -l app=csi-nfs-controller
NAME READY STATUS RESTARTS AGE
csi-nfs-controller-7694bcc6cc-96vrv 4/4 Running 2 (39s ago) 6m13s
k8s创建 StorageClass
https://github.com/kubernetes-csi/csi-driver-nfs/blob/master/deploy/example/storageclass-nfs.yaml
root@k8s-master01:~# vim nfs-csi.yaml
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-csi
provisioner: nfs.csi.k8s.io
parameters:
server: nfs-server.nfs.svc.cluster.local # nfs 名称空间下的 nfs服务
share: /
# csi.storage.k8s.io/provisioner-secret is only needed for providing mountOptions in DeleteVolume
# csi.storage.k8s.io/provisioner-secret-name: "mount-options"
# csi.storage.k8s.io/provisioner-secret-namespace: "default"
reclaimPolicy: Retain #PV的删除策略,默认为delete,删除PV后立即删除NFS server的数据
volumeBindingMode: Immediate
allowVolumeExpansion: true
mountOptions:
- nfsvers=4.1
root@k8s-master01:~# kubectl apply -f nfs-csi.yaml
root@k8s-master01:~# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
nfs-csi nfs.csi.k8s.io Delete Immediate true 29s
k8s给予StorageClass测试动态pv
https://github.com/kubernetes-csi/csi-driver-nfs/blob/master/deploy/example/pvc-nfs-csi-dynamic.yaml
root@k8s-master01:~# vim pvc-nfs-csi-dynamic.yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-nfs-dynamic
namespace: default
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 3Gi
storageClassName: nfs-csi
root@k8s-master01:~# kubectl apply -f pvc-nfs-csi-dynamic.yaml
root@k8s-master01:~# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
pvc-nfs-dynamic Bound pvc-fa2a7467-9638-4751-b386-830783f7ef2f 3Gi RWX nfs-csi <unset> 13s
创建没有问题删除掉即可
root@k8s-master01:~# kubectl delete pvc pvc-nfs-dynamic
文章评论