目前,Kubernetes支持的存储卷可简单归为以下几类,它们给子有着不少的实现插件
- 临时存储卷:emptyDir
- 本地存储卷:hostPath和local
- 网络存储卷
- 云存储--awsElasticBlockStore、gcePersistentDisk、azureDisk和azureFile
- 网络文件系统--NFS、GlusterFS、CephFS和Cinder
- 网络块设备:iscsi、FC、RBD和vSphereVolume
- 网络存储平台:Quobyte、Portworx Volume、StorageOS和ScaleI
- 特殊存储卷:Secret、ConfigMap、DownwardAPI和Projected
- 扩展支持第三方存储的存储接口(Out-of-Tree卷插件):CSI和FlexVolume
通常,这些Kubernetes内置提供的存储卷插件可归类为In-Tree类型,它们同Kubernetes源代码一同发布和迭代,而由存储服务商借助于CSI或Flex Volume接口扩展的独立于Kubernetes代码的存储卷插件则统称为Out-Of-Tree类型,集群管理员也可以根据需要创建自定义的扩展插件,目前CSI是较为推荐的扩展接口。
尽管网络存储基本都具有持久化存储能力,但它们都要求Pod资源清单的编写人员了解可用的真实网络存储的基础结构,并且能够准确配置用到的每一种存储服务。例如,要创建基于Ceph RBD的存储卷,用户必须要了解Ceph集群服务器(尤其是Monitor服务器)的地址,并且能够理解Ceph集群的必要配置及其意义。