PV
apiversion: v1kind: PersistenVolumemetadata:name: jenkins-pvlabels:env: devopsspec:storageClassName: jenkins-storageaccessMode:- ReadWriteOncecapacity:storage: 10GipersistentVolumeReclaimPolicy: Recyclenfs:path: /data/k8sserver: 192.168.50.104
参数说明:
(1)accessMode:访问模式,有ReadWriteOnce,ReadOnlyMany,ReadWriteMany。其中:
- ReadWriteOnce:表示具有读写权限,但是只能被一个node挂载一次
- ReadOnlyMany:表示具有只读权限,可以被多个node多次挂载
- ReadWriteMany:表示具有读写权限,可以被多个node多次挂载
(2)capacity:持久卷资源和容量的描述,存储大小是唯一可设置或请求的资源。
(3)persistentVolumeReclaimPolicy: 回收策略,也就是释放持久化卷时的策略,其有以下几种:
- Retain:保留数据,如果要清理需要手动清理数据,默认的策略;
- Delete:删除,将从Kubernetes中删除PV对象,以及外部基础设施中相关的存储资产,比如AWS EBS, GCE PD, Azure Disk, 或Cinder volume;
Recycle:回收,清楚PV中的所有数据,相当于执行rm -rf /pv-volume/*;
(4)PV 跟 PVC 之间的绑定通过 storageClassName 进行绑定
PVC
apiversion: app/v1kind: PersistenVolumeClaimmetadata:name: jenkins-pvcnamespace: devopslabels:env: devopsspec:storageClassName: jenkins-storageaccessModes:ReadWriteOnceresources:requests:storage: 3Gi
操作
# 查看 pvkubectl get pv# 查看 pvckubectl get pvc# 应用kubectl apply -f pv.yamlkubectl apply -f pvc.yaml# 删除kubectl delete -f pv.yaml
注意
(1)、如果我们的PVC需求的容量大于PV的可用容量,绑定是不会成功的;
(2)、如果我们的PVC需求的容量小于PV的可用容量,绑定的容量是PV的可用容量;
