You create persistent storage for workloads running on Anthos clusters on AWS (GKE on AWS) with Kubernetes objects.
Using persistent storage in your Anthos clusters on AWS workloads
In Anthos clusters on AWS, you use the Kubernetes PersistentVolume (PV), PersistentVolumeClaim (PVC), and StorageClass resources to provide persistent file and block storage to workloads. For user clusters version 1.17 and higher, you can create snapshots of persistent storage with the VolumeSnapshot and VolumeSnapshotClass resources. Snapshots are stored in your AWS account.
User clusters have a default Kubernetes StorageClass that dynamically provisions stateful storage for workloads on AWS Elastic Block Storage (EBS) volumes. You can also use a different StorageClass to provision other types of volumes. These options are described in the following section.
Users clusters have a default Kubernetes VolumeSnapshotClass that creates snapshots of stateful storage on AWS Elastic Block Storage (EBS) volumes.
Configuring cluster storage
If you want to provision storage volumes with a non-default StorageClass, you can create a new StorageClass in a cluster that uses different parameters or a different storage driver. Then, you can set the StorageClass as the cluster's default, or configure your workloads to use the StorageClass. For example, you can use a StatefulSet to set a specific StorageClass name.
Using volume snapshots
Elastic Block Storage (EBS)
The EBS CSI Driver version is tied to a Anthos clusters on AWS Kubernetes version. When you upgrade your user cluster version, the new driver version applies automatically. This version is typically the latest driver available at the time that the Anthos clusters on AWS version is released.
The driver pre-installed with Anthos clusters on AWS provides the following StorageClasses by default:
standard-rwo(default): Used for provisioning EBS
premium-rwo: Used for provisioning EBS
EBS volumes support the Kubernetes ReadWriteOnce access mode.
Preexisting EBS volumes
You can provision existing EBS volumes in your Anthos clusters on AWS workloads. See Importing a preexisting EBS volume for examples on how to use EBS volumes in Anthos clusters on AWS.
Elastic File System (EFS)
Additional storage options
Other third-party storage systems can be used with Anthos clusters on AWS through third-party Container Storage Interface (CSI) drivers (recommended) or in-tree Kubernetes volume plugins.
The Container Storage Interface (CSI) is an open standard API that enables Kubernetes to attach arbitrary storage systems to containerized workloads. A non-comprehensive list of CSI drivers can be found in the Kubernetes CSI Developer Documentation. Anthos clusters on AWS supports CSI v1.x.
To use a CSI driver in your cluster, you need to install the CSI driver provided by your storage vendor. You can then configure workloads to use the driver's StorageClass or set it as the default StorageClass.
AWS-specific storage drivers
The following volume drivers can be used with Anthos clusters on AWS.
FSx for Lustre (FSX)
Kubernetes in-tree volume plugins
Kubernetes ships with in-tree (built-in) volume plugins. Supported in-tree drivers include the following:
- Learn about Using StorageClasses with your workloads.
- Import a preexisting EBS volume into Anthos clusters on AWS.
- Learn about Persistent volumes in GKE.
- Learn about Volume snapshots in GKE.
- Read the Kubernetes Storage Classes documentation.
- Read the Container Storage Interface release announcement.