【发布时间】:2020-09-16 23:58:54
【问题描述】:
我正在尝试寻找一种解决方案,以使用相同的 Amazon EFS 在 Kubernetes 部署中挂载多个目录。这是我的用例
- 我有一个名为 app1 的应用程序需要将名为“/opt/templates”的目录持久化到 EFS
- 我有另一个名为 app2 的应用程序需要将名为“/var/logs”的目录持久化到 EFS
我们将应用程序部署为 Amazon EKS 集群中的 Kubernetes Pod。如果我对上述两个挂载使用相同的 EFS,我可以看到目录“/opt/templates”和“/var/logs”中的所有文件,因为我使用的是相同的 EFS。
如何解决两个应用程序使用相同 EFS 的问题,而不会看到 app2 目录中的 app1 挂载文件?甚至可以为多个应用程序使用相同的 EFS ID 吗?
这是我用于其中一个应用程序的 Kubernetes 清单,其中包括 PersistentVolume、PVC 和部署
----
apiVersion: v1
kind: PersistentVolume
metadata:
name: efs-pv-1
spec:
capacity:
storage: 2Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: efs-sc-report
csi:
driver: efs.csi.aws.com
volumeHandle: fs-XXXXX
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: efs-pvc-1
spec:
accessModes:
- ReadWriteMany
storageClassName: efs-sc
resources:
requests:
storage: 2Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy1
spec:
replicas: 1
selector:
matchLabels:
app: deploy1
template:
metadata:
labels:
app: deploy1
spec:
containers:
- name: app1
image: imageXXXX
ports:
- containerPort: 6455
volumeMounts:
- name: temp-data
mountPath: /opt/templates/
volumes:
- name: shared-data
emptyDir: {}
- name: temp-data
persistentVolumeClaim:
claimName: efs-pvc-1
【问题讨论】:
标签: amazon-web-services kubernetes persistent-volumes amazon-efs file-storage