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策略