This guide shows you how to use Filestore multishares for Google Kubernetes Engine with the GKE Filestore CSI driver.
Before you begin
Before you begin, complete the setup steps needed to use Filestore.
Enable the GKE Filestore CSI driver, version 1.23 or later:
Driver versions 1.23 through 1.26 support up to 10 shares per instance.
Driver versions 1.27 or later support up to 80 shares per instance.
For the latest GKE Filestore CSI driver requirements, see Access Filestore instances with the Filestore CSI driver.
Use Filestore multishares with multiple applications
This section shows you how to deploy two applications, one Deployment and one Statefulset, each using a Filestore multishares StorageClass. You'll also see how GKE bin packs (a process to efficiently pack applications into your GKE nodes) all volumes in the same underlying Filestore enterprise instance.
Use the GKE-provided StorageClass,
enterprise-multishare-rwx, to create instances that support up to 10 shares.- If you want to create instances that support up to 80 shares, you'll need to create a custom StorageClass. For the purpose of this guide, you will use a StorageClass with a ten-share-per-instance limit.
After the GKE Filestore CSI driver is enabled, users can access the GKE-provided multishare StorageClass
enterprise-multishare-rwxwith the following configuration. Referencing this StorageClass, the GKE Filestore CSI driver uses dynamic volume provisioning to automatically create Persistent Volumes (PVs) for new Persistent Volume Claims (PVCs) as GKE workload demand requires:kubectl describe sc enterprise-multishare-rwx Name: enterprise-multishare-rwx IsDefaultClass: No Annotations: components.gke.io/component-name=filestorecsi,components.gke.io/component-version=0.7.2,components.gke.io/layer=addon Provisioner: filestore.csi.storage.gke.io Parameters: instance-storageclass-label=enterprise-multishare-rwx,multishare=true,tier=enterprise AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
Create a custom StorageClass
If you want to take advantage of the latest capacity limit of up to 80 shares per Filestore instance, create a custom StorageClass based on the following template:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: csi-filestore-multishare-128
provisioner: filestore.csi.storage.gke.io
parameters:
tier: enterprise
multishare: "true"
max-volume-size: "128Gi"
network: default
allowVolumeExpansion: true
When renaming the StorageClass, consider the following requirements:
The StorageClass name must be a valid DNS subdomain name.
The multishare StorageClass name is also used as an instance label and should follow label naming guidelines.