本地持久卷在其自己的目录中
Local Persistent Volume in its own directory
我已经让本地持久卷工作,使用本地目录作为挂载点、存储 class、PVC 等,所有这些都使用标准文档。
但是,当我在 Pod 中使用此 PVC 时,所有文件都在挂载点的基础上创建,即如果 /data
是我的挂载点,我所有的应用程序文件都存储在/data
个文件夹。我看到这会在未来造成冲突,多个应用程序写入同一个文件夹。
寻找任何建议或建议,将 Pod 的每个 PVC 甚至应用程序文件放入 PV 中的单独目录中。
您可以简单地更改挂载路径,将每个应用程序的挂载路径分开,使POD的文件到单独的目录中。
如果您将数据存储在卷上的不同目录中,您可以使用子路径将数据分隔到使用多个安装点的不同目录中。
例如
apiVersion: v1
kind: Pod
metadata:
name: podname
spec:
containers:
- name: containername
image: imagename
volumeMounts:
- mountPath: /path/to/mount/point
name: volumename
subPath: volume_subpath
- mountPath: /path/to/mount/point2
name: volumename
subPath: volume_subpath2
volumes:
- name: volumename
persistentVolumeClaim:
claimName: pvcname
另一种方法是使用 subPathExpr
。
注:
The subPath and subPathExpr properties are mutually exclusive
apiVersion: v1
kind: Pod
metadata:
name: pod3
spec:
containers:
- name: pod3
env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
image: busybox
command: [ "sh", "-c", "while [ true ]; do echo 'Hello'; sleep 10; done | tee -a /logs/hello.txt" ]
volumeMounts:
- name: workdir1
mountPath: /logs
subPathExpr: $(POD_NAME)
restartPolicy: Never
volumes:
- name: workdir1
persistentVolumeClaim:
claimName: pvc1
如所述here。
我已经让本地持久卷工作,使用本地目录作为挂载点、存储 class、PVC 等,所有这些都使用标准文档。
但是,当我在 Pod 中使用此 PVC 时,所有文件都在挂载点的基础上创建,即如果 /data
是我的挂载点,我所有的应用程序文件都存储在/data
个文件夹。我看到这会在未来造成冲突,多个应用程序写入同一个文件夹。
寻找任何建议或建议,将 Pod 的每个 PVC 甚至应用程序文件放入 PV 中的单独目录中。
您可以简单地更改挂载路径,将每个应用程序的挂载路径分开,使POD的文件到单独的目录中。
如果您将数据存储在卷上的不同目录中,您可以使用子路径将数据分隔到使用多个安装点的不同目录中。
例如
apiVersion: v1
kind: Pod
metadata:
name: podname
spec:
containers:
- name: containername
image: imagename
volumeMounts:
- mountPath: /path/to/mount/point
name: volumename
subPath: volume_subpath
- mountPath: /path/to/mount/point2
name: volumename
subPath: volume_subpath2
volumes:
- name: volumename
persistentVolumeClaim:
claimName: pvcname
另一种方法是使用 subPathExpr
。
注:
The subPath and subPathExpr properties are mutually exclusive
apiVersion: v1
kind: Pod
metadata:
name: pod3
spec:
containers:
- name: pod3
env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
image: busybox
command: [ "sh", "-c", "while [ true ]; do echo 'Hello'; sleep 10; done | tee -a /logs/hello.txt" ]
volumeMounts:
- name: workdir1
mountPath: /logs
subPathExpr: $(POD_NAME)
restartPolicy: Never
volumes:
- name: workdir1
persistentVolumeClaim:
claimName: pvc1
如所述here。