09-kubernetes集群存储
kubernetes集群存储
1. Kubernetes Volume
Volume:生命周期与其所附着的Pod相同
- Kubernetes Volume本质是一个目录
- 要使用Volume,需要为Pod指定spec.volumes字段以及将它挂载到容器的位置(spec.containers.volumeMounts 字段)
- 支持多种Volume Type: cephfs、configMap、hostPath、nfs 、rbd、secret、local、emptyDir等
2. PersistentVolume(PV)
- PV是集群中的资源,可以把pv看成volume plugin
- PV生命周期独立于pod
- PV对象封装了底层存储卷实现的细节
PV访问模式有三种:ReadWriteOnce、ReadOnlyMany、ReadWriteMany
3. PersistentVolumeClaim(PVC)
PVC是对PV资源的请求
- PVC负责请求PV的大小和访问方式
- 绑定:PVC将与满足请求的PV资源一对一绑定
- 使用:像Volume—样
4. StorageCIass
PVC按"CIass"匹配PV
- PVC负责请求PV的大小和访问方式
- 可以为PV指定storageClassName属性,标识pv归属哪一个Class
- 绑定:一个请求绑定特定Class的PVC只能绑定拥有该Class属性的PV;一个没有指定CIass的PVC仅可以绑定没有特CIass属性字段的PV
5. 基于StorageCIass的动态PV供给
- 开启动态PV供给:StorageClass和使用StorageClass的PVC
- 集群默认动态PV供给行为:存在DefaultStorageClass、PVC未指定StorageClass
- 集群至多存在一个Default StorageClass
6. PV状态与回收策略
- PV的状态:Available/Bound/Released/Failed
- PV回收策略:Retain/Recycle/Delete
- 当前,只有NFS和HostPath支持Recycle策略;AWS EBS、GCEPD、AzureDisk和Cinder卷支持Delete策略