为什么我不能使用不同的子路径将相同的 PVC 挂载到单个 pod 两次?

Why cant I mount the same PVC twice with different subpaths to single pod?

为什么我不能像下面这样设置。 我想将 vol1 映射到具有不同子路径的 pod,其中 xyz 和 vol2 映射到具有子路径 abc 的同一个 pod。

  volumes:
  - name:vol1
    persistentVolumeClaim:
      claimName: testclaim
  - name: vol2
    persistentVolumeClaim:
      claimName: testclaim

容器卷挂载:

  volumeMounts:
    - name: vol1
      mountPath: /test/
      subPath: abc
    - name: vol2
      mountPath: /test2/
      subPath: xyz

这种设置的替代方案是什么?

试试这个

  volumeMounts:
    - name: vol1
      mountPath: /test
      subPath: abc
    - name: vol1
      mountPath: /test2
      subPath: xyz
volumes:
- name: vol1
  persistentVolumeClaim:
    claimName: testclaim

您可以在同一节点中的不同 pods 中使用相同的 PVC。但是您不能在同一个 pod 中使用不同的卷声明相同的 pvc。在这里你不需要多次在你的卷中添加 pvc 。您可以只添加 pvc 一次。并将卷安装在不同的 mountPath.

这将是更新后的 yaml 格式

volumes:
- name: vol1
  persistentVolumeClaim:
    claimName: testclaim
  volumeMounts:
    - name: vol1
      mountPath: /test
      subPath: abc
    - name: vol1
      mountPath: /test2
      subPath: xyz