概述
存储类(StorageClass)是一种用于描述 Kubernetes 集群可用的存储资源类别的 Kubernetes 资源,是集群相关资源。管理员可以根据想要提供的服务质量级别以及备份、安全或其他策略配置存储类,应用于不同业务场景。
基本概念
存储类(StorageClass)是一种用于描述 Kubernetes 集群可用的 存储资源类别 的 Kubernetes 资源,是集群相关资源。管理员可以根据想要提供的服务质量级别以及备份、安全或其他策略配置存储类,应用于不同业务场景。
也可将存储类看作创建持久卷(PersistantVolume,PV)、存储桶的模板。当开发、测试人员创建持久卷声明(PVC)或存储桶声明请求存储资源时,需要选择一项存储类。持久卷声明或存储桶声明创建成功后,Kubernetes 会调用存储插件的 API 根据相关配置,自动、动态地创建符合持久卷声明或存储桶请求的存储卷,从而节省创建存储资源的时间和人力成本。
同时,通过存储类,可为集群中的持久卷、存储桶对接不同类型的后端存储。将存储类设置为默认,分配给集群下所有项目或指定的一个项目后,方便普通用户选择关联。
平台能力
平台支持通过表单或 YAML 编排文件的方式创建存储类,封装不同存储资源类型的存储类。并支持通过将存储类分配至全部项目或指定的某个项目,为项目分配存储类的使用权限。
YAML 编排文件的方式,适用于熟悉 Kubernetes 且可以熟练使用 YAML 的管理员用户。
存储类特性比较
支持的访问模式
下表为平台默认提供的存储类及对应访问模式差异。如果您使用的是其他存储类,请查阅 Kubernetes 官方文档 了解该存储类在 Kubernetes 环境下对访问模式的支持程度。
-
单节点读写 (RWO):可以被一个节点以读写方式挂载。
-
多节点只读 (ROX):可以被多个节点以只读方式挂载。
-
多节点读写 (RWX):可以被多个节点以读写方式挂载。
存储类 | 单节点读写(RWO) | 多节点只读(ROX) | 多节点读写(RWX) |
---|---|---|---|
CephFS 文件存储 | 支持 | 不支持 | 支持 |
CephObject 对象存储 | 不支持 | 不支持 | 不支持 |
CephRBD 块存储 | 支持 | 不支持 | 不支持 |
Ceph 对象存储 | - | - | - |
TopoLVM | 支持 | 不支持 | 不支持 |
NFS 共享存储 | 支持 | 不支持 | 支持 |
支持的存储系统类型
文件存储 也称为文件级存储或基于文件的存储,具有丰富多样的功能,几乎可以存储任何内容。它非常适合用来存储一系列复杂文件,并且有助于用户快速查找。
块存储 是一种高效可靠的数据存储方式,且易于使用和管理,适用于要执行大型事务或部署了大型数据库的业务应用。
对象存储 是用于大规模存储非结构化数据的数据存储架构。它将每项数据指定为一个对象,保存在单独的仓库中,然后与元数据和唯一标识符捆绑在一起,以方便访问和检索,适用于大数据、备份归档、网盘等场景。
存储类 | 类型 | 卷模式 |
---|---|---|
CephFS 文件存储 | 文件存储 | 文件系统 |
CephRBD 块存储 | 块存储 | 文件系统、块设备 |
CephObject 对象存储 | 对象存储 | - |
Ceph 对象存储 | 对象存储 | - |
TopoLVM | 块存储 | 文件系统、块设备 |
NFS 共享存储 | 文件存储 | 文件系统 |
存储特性
目前平台仅支持使用存储类 动态创建 的 PVC 为其创建卷快照,您可基于该快照创建新的 PVC 并与之绑定。使用快照创建 PVC 时支持的访问模式与使用存储类创建 PVC 时支持的访问模式有所不同,参考 部署卷快照组件 。
存储类 | 卷快照 | 扩容 |
---|---|---|
CephFS 文件存储 | 支持 | 支持 |
CephRBD 块存储 | 支持 | 支持 |
CephObject 对象存储 | 不支持 | 支持 |
Ceph 对象存储 | 不支持 | - |
TopoLVM | 支持 | 支持 |
NFS 共享存储 | 不支持 | 不支持 |