Overview
StorageClasses (StorageClass) is a Kubernetes resource used to describe the available storage resources in a Kubernetes cluster. It is a cluster-related resource. Administrators can configure StorageClasses based on the desired service quality level, as well as backup, security, or other policies, to be applied to different business scenarios.
Basic concepts
StorageClasses (StorageClass) is a Kubernetes resource used to describe the available storage resource categories in a Kubernetes cluster. It is a cluster-related resource. Administrators can configure StorageClasses based on the desired service quality level, as well as backup, security, or other policies, to be applied to different business scenarios.
StorageClasses can also be seen as templates for creating PV (PersistentVolume) or storage bucket. When developers or testers create PV claims (PVC) or storage bucket claims to request storage resources, they need to select a StorageClass. After the PV claim or storage bucket claim is successfully created, Kubernetes will call the API of the storage plugin to automatically and dynamically create storage volumes that meet the requirements of the PV claim or storage bucket request, thereby saving time and manpower costs for creating storage resources.
At the same time, through StorageClasses, different types of backend storage can be connected to PVs and storage buckets in the cluster. By setting StorageClasses as default and allocating them to all projects under the cluster or a specific project, it is convenient for ordinary users to choose associations.
Platform capabilities
The platform supports the creation of StorageClasses through forms or YAML manifest files, which encapsulate different types of storage resources. It also supports assigning StorageClasses to all projects or specific projects to allocate the usage permissions of StorageClasses to projects.
The YAML orchestration file method is suitable for administrators who are familiar with Kubernetes and proficient in using YAML.
StorageClasses feature comparison
Supported access modes
The following table shows the default StorageClasses provided by the platform and the corresponding differences in access modes. If you are using other StorageClasses, please refer to the official Kubernetes documentation to understand the level of support for access modes in the Kubernetes environment.
-
Single Node Read/Write (RWO): Can be mounted by a single node for both reading and writing.
-
Read-only Many Nodes (ROX): Can be mounted in read-only mode by multiple nodes.
-
Read-Write Many (RWX): Can be mounted by multiple nodes for both reading and writing.
| StorageClasses | Single-node Read/Write (RWO) | Multi-node Read-only (ROX) | Multi-node Read/Write (RWX) |
|---|---|---|---|
| CephFS File Storage | Supported | Not supported | Supported |
| CephRBD Block Storage | Supported | Not supported | Not supported |
| TopoLVM | Supported | Not supported | Not supported |
| NFS Shared Storage | Supported | Not supported | Supported |
Supported storage system types
File storage, also known as file-level storage or file-based storage, has a wide range of functionalities and can store almost any type of content. It is particularly suitable for storing a collection of complex files and helps users quickly locate them.
Block storage is an efficient and reliable data storage method that is easy to use and manage. It is suitable for business applications that require large transactions or deploy large databases.
| StorageClasses | Type | Volume Mode |
|---|---|---|
| CephFS File Storage | File Storage | File System |
| CephRBD Block Storage | Block Storage | File System, Block Device |
| TopoLVM | Block Storage | File System, Block Device |
| NFS Shared Storage | File Storage | File System |
Storage features
Currently, the platform only supports creating volume snapshots for PVCs that are dynamically created using StorageClasses. You can create new PVCs based on these snapshots and bind them. The supported access modes for creating PVCs using snapshots are different from the supported access modes for creating PVCs using StorageClasses. Please refer to Deploying the Volume Snapshot Component for more information.
| StorageClasses | Volume Snapshot | Scaling |
|---|---|---|
| CephFS File Storage | Supported | Supported |
| CephRBD Block Storage | Supported | Supported |
| TopoLVM | Supported | Supported |
| NFS Shared Storage | Not supported | Not supported |