kubernetes 如何使用相同的EFS文件存储器作为两个静态持久存储器?

gudnpqoy  于 2024-01-07  发布在  Kubernetes
关注(0)|答案(1)|浏览(149)

我想使用same efs作为two static volumes.
为此,我创建了以下两个PersistentVolume Yamls:

两个PV

  1. apiVersion: v1
  2. kind: PersistentVolume
  3. metadata:
  4. name: pv001
  5. spec:
  6. capacity:
  7. storage: 5Gi
  8. volumeMode: Filesystem
  9. accessModes:
  10. - ReadWriteMany
  11. persistentVolumeReclaimPolicy: Delete
  12. csi:
  13. driver: efs.csi.aws.com
  14. volumeHandle: fs-0fd788366150f8667.efs.us-east-1.amazonaws.com
  15. volumeAttributes:
  16. path: "/logs"
  17. apiVersion: v1
  18. kind: PersistentVolume
  19. metadata:
  20. name: pv002
  21. spec:
  22. capacity:
  23. storage: 5Gi
  24. volumeMode: Filesystem
  25. accessModes:
  26. - ReadWriteMany
  27. persistentVolumeReclaimPolicy: Delete
  28. csi:
  29. driver: efs.csi.aws.com
  30. volumeHandle: fs-0fd788366150f8667.efs.us-east-1.amazonaws.com
  31. volumeAttributes:
  32. path: "/data"

字符串

两个PVC

  1. apiVersion: v1
  2. kind: PersistentVolumeClaim
  3. metadata:
  4. name: pvc001
  5. spec:
  6. resources:
  7. requests:
  8. storage: 3Gi
  9. volumeMode: Filesystem
  10. accessModes:
  11. - ReadWriteMany
  12. apiVersion: v1
  13. kind: PersistentVolumeClaim
  14. metadata:
  15. name: pvc002
  16. spec:
  17. resources:
  18. requests:
  19. storage: 6Gi
  20. volumeMode: Filesystem
  21. accessModes:
  22. - ReadWriteMany

部署

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: test
  5. spec:
  6. replicas: 3
  7. selector:
  8. matchLabels:
  9. app: test
  10. template:
  11. metadata:
  12. labels:
  13. app: test
  14. spec:
  15. containers:
  16. - image: nginx
  17. name: nginx-cont
  18. volumeMounts:
  19. - name: logs
  20. mountPath: /usr/share/nginx/html
  21. - name: data
  22. mountPath: /var/www/html
  23. volumes:
  24. - name: logs
  25. persistentVolumeClaim:
  26. claimName: pvc001
  27. - name: data
  28. persistentVolumeClaim:
  29. claimName: pvc002


然而,这是抛出下面的错误:

  1. Unable to attach or mount volumes: unmounted volumes=[logs], unattached volumes=[], failed to process volumes=[logs]:

cedebl8k

cedebl8k1#

我通常做的有点不同。我创建pv:

  1. apiVersion: v1
  2. kind: PersistentVolume
  3. metadata:
  4. name: efs-pv
  5. spec:
  6. capacity:
  7. storage: 5Gi
  8. volumeMode: Filesystem
  9. accessModes:
  10. - ReadWriteMany
  11. storageClassName: ""
  12. persistentVolumeReclaimPolicy: Retain
  13. csi:
  14. driver: efs.csi.aws.com
  15. volumeHandle: fs-0000000000000000e

字符串
然后创建PVC:

  1. apiVersion: v1
  2. kind: PersistentVolumeClaim
  3. metadata:
  4. name: efs-claim
  5. spec:
  6. accessModes:
  7. - ReadWriteMany
  8. storageClassName: ""
  9. resources:
  10. requests:
  11. storage: 5Gi


然后我这样使用它(只是作为一个例子):

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: upperlower-pod
  5. labels:
  6. app: upperlower
  7. spec:
  8. containers:
  9. - name: upperall
  10. image: dm/upperall:latest
  11. imagePullPolicy: Always
  12. volumeMounts:
  13. - name: persistent-storage
  14. mountPath: /data
  15. volumes:
  16. - name: persistent-storage
  17. persistentVolumeClaim:
  18. claimName: efs-claim


在应用程序内部,然后是这样的:

  1. ...
  2. # Configure the logger
  3. log_dir = '/data/logs'
  4. log_filename = 'app.log'
  5. log_path = os.path.join(log_dir, log_filename)
  6. logging.basicConfig(
  7. filename=log_path,
  8. level=logging.DEBUG,
  9. format='%(asctime)s - %(levelname)s - %(message)s'
  10. )
  11. incoming_dir = '/data/incoming'
  12. processed_dir = '/data/processed'
  13. ...


更多信息:https://aws.amazon.com/blogs/storage/persistent-storage-for-kubernetes/

展开查看全部

相关问题