This page describes the available storage configurations for Google Distributed Cloud. Google Distributed Cloud provides block and file storage interfaces through the following resources:
- Kubernetes
Volumes
PersistentVolumes
StorageClasses
VolumeSnapshots
Ephemeral Storage through Kubernetes volumes
Kubernetes volumes are storage units accessible to containers in a Pod. Some
volume types are backed by ephemeral storage, such as
emptyDir
,
ConfigMap
,
and
Secrets
.
Ephemeral Storage types do not persist after the Pod ceases to exist. They are
useful for storing configuration information and as cache space for
applications.
Ephemeral storage types share and consume resources from the node's boot disk. You can manage your local ephemeral storage resources in the same way as your CPU and memory resources.
Persistent Storage through PersistentVolume
A Kubernetes PersistentVolume
(PV) is a resource that Pods can use for durable
storage. A PV's lifetime is independent from a Pod's lifetime. This means that
the disk and data represented by a PV continue to exist as the cluster changes
and as Pods are deleted and recreated. PV resources can be provisioned
dynamically through PersistentVolumeClaims
PVCs, or they can be explicitly
created by a cluster administrator.
Persistent storage in GKE Enterprise can be backed by a variety of storage systems, including Container Storage Interface (CSI) drivers and local volumes.
Container Storage Interface (CSI) drivers
GKE Enterprise is compatible with Container Storage Interface (CSI) v1.0 drivers. CSI is an open standard API that many major storage vendors support. For production storage, we recommend installing a CSI driver from an GKE Enterprise Ready storage partner. For the full listing of GKE Enterprise Ready storage partners, see GKE Enterprise Ready Storage Partners.
To use CSI in your cluster, deploy the CSI driver provided by your storage
vendor. Then, configure workloads to use the driver's StorageClass
,
or set the StorageClass
as the default StorageClass
.
Local volumes
For proof of concept and advanced use cases, you can use local PVs. Google Distributed Cloud bundles the sig-storage-local-static-provisioner, which discovers mount points on each node and creates a local PV for each mount point.
Google Distributed Cloud cluster uses the local volume provisioner (LVP) to manage local persistent volumes. There are three types of storage classes for local PVs in an Google Distributed Cloud cluster:
- LVP share
- LVP node mounts
- GKE Enterprise system
LVP share
This option creates a local PV backed by subdirectories in a local, shared file system. These subdirectories are automatically created during cluster creation. Workloads using this storage class will share capacity and IOPS since the PVs are backed by the same shared file system. For better isolation, we recommend configuring disks through LVP node mounts.
See Configuring an LVP Share for detailed instructions.
LVP node mounts
This option creates a local PV for each mounted disk in the configured directory. Each disk needs to be formatted and mounted by the user, which can be done before or after cluster creation.
See Configuring LVP node mounts for detailed instructions.
GKE Enterprise system
This storage class creates preconfigured local PVs during cluster creation that
is used by GKE Enterprise system pods. The storage class name is
anthos-system
. Do not change or delete this storage class and do not use this
stoage class for stateful apps.
What's next
- Learn more about Volumes.
- Learn more about Container Storage Interface in Kubernetes.
- Learn how to take PVC snapshots
- Learn how to increase the capacity of a PVC.