Selected topic

Storage Classes

Storage

Prefer practical output? Use related tools below while reading.

What is a Storage Class?

A StorageClass is an API object that defines a type of storage resource, such as an SSD or HDD, with specific characteristics like performance, capacity, and access modes.

Key Components:

  1. Name: A unique name for the storage class.
  2. Provisioner: The provider that manages the underlying storage resources (e.g., AWS EBS, GCE PD).
  3. Parameters: Optional parameters that configure the provisioner (e.g., storage size, access modes).

Types of Storage Classes:

  1. Standard Persistent Volume:
* Simple, block-based storage with no specific performance guarantees.
  1. Local Persistent Volume:
* Stored on local disks, usually for development or testing environments.
  1. StatefulSet:
* Designed for stateful applications (e.g., databases) that require consistent network identity.

Example Storage Class:

yml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ssd-storage
parameters:
  type: gp2 # Use Amazon EBS GP2 for this storage class
provisioner: kubernetes.io/aws-ebs

In this example, we define a StorageClass named ssd-storage that uses the AWS EBS GP2 provisioner. The type parameter specifies the underlying storage type (GP2 in this case).

Example PVC using the Storage Class:


yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi # Request a 5GB persistent volume
storageClassName: ssd-storage # Use the defined Storage Class

In this example, we create a PersistentVolumeClaim named my-claim that uses the ssd-storage StorageClass. The PVC requests a 5GB persistent volume with read-write access.

Conclusion


Storage Classes in Kubernetes provide a flexible way to manage storage resources. By defining different types of storage classes, administrators can configure various storage options for their applications. This example demonstrates how to create and use a Storage Class, as well as bind it to a Persistent Volume Claim (PVC).