bab*_*s84 6 file-storage amazon-web-services kubernetes persistent-volumes amazon-efs
我正在尝试找到一种解决方案,以利用相同的 Amazon EFS 在 Kubernetes 部署中挂载多个目录。这是我的用例
我们将应用程序部署为 Amazon EKS 集群中的 Kubernetes Pod。如果我对上述两个安装使用相同的 EFS,我可以看到目录“/opt/templates”和“/var/logs”中的所有文件,因为我使用相同的 EFS。
如何解决对两个应用程序使用相同 EFS 的问题,而不会在app2目录中看到app1挂载的文件?是否可以为多个应用程序使用相同的 EFS ID?
这是我用于其中一个应用程序的 Kubernetes 清单,其中包括 PersistentVolume、PVC 和 Deployment
----
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
Run Code Online (Sandbox Code Playgroud)
看来您可以通过将路径包含在卷句柄中来做到这一点。
EFS的子目录可以挂载在容器内。这使集群操作员可以灵活地限制从 EFS 上的不同容器访问的数据量。
例如:
volumeHandle: [FileSystemId]:[Path]
Run Code Online (Sandbox Code Playgroud)
我认为您需要创建两个单独的 PV 和 PVC,一个用于 /opt/templates,另一个用于 /var/logs,每个都指向 EFS 上的不同路径。
| 归档时间: |
|
| 查看次数: |
4632 次 |
| 最近记录: |