vSAN file service offers vSAN file shares that are consumed by persistent volumes of the ReadWriteMany (RWM) type. A single RWM volume can be mounted by multiple nodes. The volume can be shared between multiple pods or applications running across Kubernetes nodes or across Kubernetes clusters.

When a Kubernetes pod request an RWM volume, Cloud Native Storage communicates with vSAN file service to create an NFS-based file share of the requested size and storage class. Cloud Native Storage then mounts the RWM volume into the Kubernetes worker node where the pod runs. If multiple nodes are requesting access to the RWM volume, Cloud Native Storage determines that the RWM volume already exists for that particular deployment and mounts the existing volume into the nodes.

To be able to support RWM volumes, your environment must include the following items.
  • vSphere 7.0 and later with vSAN
  • vSAN file service enabled. For information, see the Administering VMware vSAN documentation.
  • Kubernetes version 1.14 and later
  • Compatible version of CSI. For information, see the Kubernetes vSphere CSI Driver documentation on GitHub.

You can use different configurations for file volumes.

Single File Volume Shared Across Applications in the Same Namespace

In this example, a single file volume is used as shared storage across different applications in the same namespace. You use a single persistent volume claim to provision the file volume.

A single PVC is used to provision a file volume for two applications.

Single File Volume Shared Across Applications and Namespaces

This example uses a single file volume as shared storage across different applications and different namespaces. For each namespace, you create a separate persistent volume claim to provision the same file volume.

Two PVCs are used to provision a file volume for two applications.