Search code examples
amazon-web-serviceskubernetesnfsamazon-efs

AWS EFS Access Point mount


I have a AWS EFS created and I have also created an access point: /ap

I want to mount that AP into the Kubernetes deployment, but it's failing, although when I use / it works.

These are the manifests I am using.

PV

apiVersion: v1
kind: PersistentVolume
metadata:
  name: efs-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Mi
  mountOptions:
  - rsize=1048576
  - wsize=1048576
  - hard
  - timeo=600
  - retrans=2
  - noresvport
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /ap
    server: fs-xxx.efs.region.amazonaws.com
  claimRef:
    name: efs-pvc
    namespace: product

PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: efs-pvc
  namespace: product
spec:
  storageClassName: ""
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Mi

And I receive this upon starting a deployment.

Unable to attach or mount volumes: unmounted volumes=[data], unattached volumes=[data default-token-qwclp]: timed out waiting for the condition
Mounting command: systemd-run
Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/97e66236-cb08-4bee-82a7-6f6cf1db9353/volumes/kubernetes.io~nfs/efs-pv --scope -- mount -t nfs -o hard,noresvport,retrans=2,rsize=1048576,timeo=600,wsize=1048576 fs-559a4f0e.efs.eu-central-1.amazonaws.com:/atc /var/lib/kubelet/pods/97e66236-cb08-4bee-82a7-6f6cf1db9353/volumes/kubernetes.io~nfs/efs-pv
Output: Running scope as unit run-4806.scope.
mount.nfs: Connection timed out

Am I missing something? Or should I use CSI driver instead?


Solution

  • i strongly suggest you to follow this steps :

    step 1 : deploy efs csi drivers on your nodes

    link : https://github.com/kubernetes-sigs/aws-efs-csi-driver

    step 2 : make new PV and PVC using these tutorial

    link : https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/volume_path/README.md

    now , if you want to specify a path for folder then you can follow this tutorial

    link : https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/volume_path/specs/example.yaml

    it worked for me.