<p>I have an Access Point created on AWS EFS and now I do need to share it across multiple Persistent Volumes in Kubernetes which would eventually be used by multiple namespaces.</p>
<p>Is there a way that I can perform those, or would I need to create a separate volume with size allocation under the same mount point?</p>

Pasan Chamikara
<p><code>...share it across multiple Persistent Volumes in Kubernetes which would eventually be used by multiple namespaces</code></p>
<p>First, <a href="https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html#efs-install-driver" rel="nofollow noreferrer">install the EFS CSI driver</a>.</p>
<p>Then create the StorageClass and PersistentVolume representing the EFS volume and access point you have created:</p>
<pre><code>kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: &lt;name&gt;
provisioner: efs.csi.aws.com
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: &lt;name&gt;
spec:
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: &lt;name&gt;  # &lt;-- match this to the StorageClass name
  csi:
    driver: efs.csi.aws.com
    volumeHandle: &lt;fs-handle-id&gt;::&lt;access-point-id&gt;
</code></pre>
<p>In each of the namespace that you wish to mount the access point, create a PersistentVolumeClaim:</p>
<pre><code>apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: &lt;name&gt;
  namespace: &lt;namespace&gt;
spec:
  accessModes:
  - ReadWriteMany
  storageClassName: &lt;name&gt;  # &lt;-- match this to the StorageClass name
  resources:
    requests:
      storage: 1Gi  # &lt;-- match this to the PersistentVolume
</code></pre>
<p>As usual, you specify the volume in your spec to use it:</p>
<pre><code>...
volumes:
- name: &lt;name&gt;
  persistentVolumeClaim:
    claimName: &lt;name&gt;
</code></pre>
