×

Red Hat OpenShift Service on AWS (ROSA) clusters are prebuilt with two storage classes that use AWS Elastic Block Store (EBS) volumes. These storage classes are ready to use and some familiarity with Kubernetes and AWS is assumed.

Following are the two prebuilt storage classes:

Name Provisioner

gp2

kubernetes.io/aws-ebs

gp2-csi

ebs.csi.aws.com

The gp2 storage class is set as default; however, you can select either one as the default storage class.

The Kubernetes persistent volume framework enables administrators to provision a cluster with persistent storage and gives users a way to request those resources without having any knowledge of the underlying infrastructure. You can dynamically provision AWS EBS volumes. Persistent volumes are not bound to a single project or namespace; therefore, the volumes can be shared across ROSA clusters. Persistent volume claims are specific to a project or namespace and can be requested by users.

  • ROSA defaults to using an in-tree, or non-Container Storage Interface (CSI), plug-in to provision AWS EBS storage. In future ROSA versions, volumes provisioned using existing in-tree plug-ins are planned for migration to their equivalent CSI driver. After full migration, the in-tree plug-ins are planned to be removed from the future versions of ROSA.

  • High-availability of storage in the infrastructure is left to the underlying storage provider.

Format of persistent volumes

Before a ROSA cluster mounts the volume and passes it to a container, the cluster checks that the volume contains a file system as specified by the fsType parameter in the persistent volume definition. If the device is not formatted with a file system, all data from the device is erased and the device is automatically formatted with the given file system. This verification enables you to use unformatted AWS volumes as persistent volumes, as the ROSA cluster formats the AWS volumes before the first use.

Capacity of EBS volumes on a node

By default, a ROSA cluster supports a maximum of 39 EBS volumes attached to one node. This limit is consistent with the AWS volume limits. The volume limit depends on the instance type.

You must use either in-tree or CSI volumes and their respective storage classes, but never both volume types at the same time. The maximum attached EBS volume number is counted separately for in-tree and CSI volumes, so you could have up to 39 EBS volumes of each type.

For information about accessing additional storage options, such as volume snapshots, that are not possible with in-tree volume plug-ins, see Elastic Block Store CSI Driver Operator.

Creating a persistent volume claim

Prerequisites

Storage must exist in the underlying infrastructure before it can be mounted as a volume in the ROSA cluster.

Procedure
  1. In the OpenShift Cluster console, click Storage → Persistent Volume Claims.

  2. In the persistent volume claims overview, click Create Persistent Volume Claim.

  3. Define the desired options on the page that appears.

    1. Select the previously created storage class from the drop-down menu.

    2. Enter a unique name for the storage claim.

    3. Select the access mode. This selection determines the read and write access for the storage claim.

    4. Define the size of the storage claim.

  4. Click Create to create the persistent volume claim and generate a persistent volume.