我想使用
same efs
作为 two static volumes.
为此,我创建了以下两个
PersistentVolume Yamls:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv001
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Delete
csi:
driver: efs.csi.aws.com
volumeHandle: fs-0fd788366150f8667.efs.us-east-1.amazonaws.com
volumeAttributes:
path: "/logs"
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv002
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Delete
csi:
driver: efs.csi.aws.com
volumeHandle: fs-0fd788366150f8667.efs.us-east-1.amazonaws.com
volumeAttributes:
path: "/data"
但是,这会引发以下错误:
Unable to attach or mount volumes: unmounted volumes=[logs], unattached volumes=[], failed to process volumes=[logs]:
我通常会采取一些不同的做法。我创建了 pv:
apiVersion: v1
kind: PersistentVolume
metadata:
name: efs-pv
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
storageClassName: ""
persistentVolumeReclaimPolicy: Retain
csi:
driver: efs.csi.aws.com
volumeHandle: fs-0000000000000000e
然后我创建 PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: efs-claim
spec:
accessModes:
- ReadWriteMany
storageClassName: ""
resources:
requests:
storage: 5Gi
然后我像这样使用它(仅作为示例):
apiVersion: v1
kind: Pod
metadata:
name: upperlower-pod
labels:
app: upperlower
spec:
containers:
- name: upperall
image: dm/upperall:latest
imagePullPolicy: Always
volumeMounts:
- name: persistent-storage
mountPath: /data
volumes:
- name: persistent-storage
persistentVolumeClaim:
claimName: efs-claim
在应用程序内部,如下所示:
...
# Configure the logger
log_dir = '/data/logs'
log_filename = 'app.log'
log_path = os.path.join(log_dir, log_filename)
logging.basicConfig(
filename=log_path,
level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s'
)
incoming_dir = '/data/incoming'
processed_dir = '/data/processed'
...
更多信息:https://aws.amazon.com/blogs/storage/persistent-storage-for-kubernetes/