Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 本地持久卷在其自己的目录中_Kubernetes_Persistent Volume Claims - Fatal编程技术网

Kubernetes 本地持久卷在其自己的目录中

Kubernetes 本地持久卷在其自己的目录中,kubernetes,persistent-volume-claims,Kubernetes,Persistent Volume Claims,我使用本地目录作为装载点、存储类、PVC等,使用标准文档,让本地持久卷工作 但是,当我在Pod中使用此PVC时,所有文件都在装载点的底部创建,即如果/data是我的装载点,则所有应用程序文件都存储在/data文件夹中。我认为这会在将来产生冲突,会有多个应用程序写入同一文件夹 寻找任何建议或建议,使每个PVC,甚至应用程序文件的Pod到单独的目录在PV 您可以简单地更改装载路径并指定每个应用程序的装载路径,以便将POD文件存储到单独的目录中。如果您将数据存储在卷上的不同目录中,则可以使用子路径使用

我使用本地目录作为装载点、存储类、PVC等,使用标准文档,让本地持久卷工作

但是,当我在Pod中使用此PVC时,所有文件都在装载点的底部创建,即如果
/data
是我的装载点,则所有应用程序文件都存储在
/data
文件夹中。我认为这会在将来产生冲突,会有多个应用程序写入同一文件夹


寻找任何建议或建议,使每个PVC,甚至应用程序文件的Pod到单独的目录在PV

您可以简单地更改装载路径并指定每个应用程序的装载路径,以便将POD文件存储到单独的目录中。

如果您将数据存储在卷上的不同目录中,则可以使用子路径使用多个装载点将数据分离到不同的目录中

例如


另一种方法是使用
subPathExpr
。 注:

subPath和subPathExpr属性是互斥的

如上所述

此外,请遵循修复Kubernetes和中的子路径卷漏洞

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
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