Multiple Volume mounts in EKS pod

I running AWS EKS and want 1 of the container to share multiple mounts to the same.

I created 1 EFS , 2 PV and 2 PVC

kind: Pod
metadata:
  name: app1
spec:
  containers:
  - name: app1
    image: busybox
    command: ["/bin/sh"]
    args: ["-c", "while true; do echo $(date -u) >> /data/out1.txt; sleep 5; done"]
    volumeMounts:
    - name: data
      mountPath: /data
    - name: docket
      mountPath: /docket
  volumes:
  - name: data
    persistentVolumeClaim:
      claimName: efs-data-claim

  - name: docket
    persistentVolumeClaim:
      claimName: efs-docket-claim

And these are my PV / PVCs

apiVersion: v1
kind: PersistentVolume
metadata:
  name: efs-data-pv
spec:
  capacity:
    storage: 5Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: efs-sc
  csi:
    driver: efs.csi.aws.com
    volumeHandle: fs-XXXXX
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: efs-data-claim
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: efs-sc
  resources:
    requests:
      storage: 5Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: efs-docket-pv
spec:
  capacity:
    storage: 5Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: efs-sc
  csi:
    driver: efs.csi.aws.com
    volumeHandle: fs-XXXXX
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: efs-docket-claim
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: efs-sc
  resources:
    requests:
      storage: 5Gi
---

.. When i deploy the pod, I always get the following error enter image description here

But if I go with only 1 PVC for both the mounts it is working fine.. Could anyone please let me know what is happening..

Upvotes: 0

Views: 2109

Answers (1)

Dániel Kőszegi
Dániel Kőszegi

Reputation: 11

There is a 1-to-1 mapping between PhysicalVolumes and EFS storage. If you use two different EFS with volumeHandle: fs-XXXXX and volumeHandle: fs-YYYYY it will work.

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: "logpv"
spec:
  capacity:
    storage: "2Gi"
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: efs-sc
  csi:
    driver: efs.csi.aws.com
    volumeHandle: "fs-28147e70"
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: "qmpv"
spec:
  capacity:
    storage: "2Gi"
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: efs-sc
  csi:
    driver: efs.csi.aws.com
    volumeHandle: "fs-13c3ac4b"
---

Upvotes: 1

Related Questions