在Kubernetes中,是否可以将不同的磁盘挂载到不同的子目录中?[已关闭]

o3imoua4  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(119)

已关闭此问题为not about programming or software development。它目前不接受回答。

这个问题似乎不是关于a specific programming problem, a software algorithm, or software tools primarily used by programmers的。如果你认为这个问题与another Stack Exchange site的主题有关,你可以留下评论,解释在哪里可以回答这个问题。
6天前关闭
Improve this question
我正在考虑创建一个设置,其中主目录中的每个目录都安装到不同的磁盘上。
所以基本上卷配置意味着我有3个不同的卷连接到3个不同的持久存储磁盘:

volumes:
        - name: demo-pdf
          persistentVolumeClaim:
            claimName: demo-pdf
        - name: demo-tsv
          persistentVolumeClaim:
            claimName: demo-tsv
        - name: demo-csv
          persistentVolumeClaim:
            claimName: demo-csv

然后对于卷装载:

volumeMounts:
            - name: demo-pdf
              mountPath: "/code/p_data/pdf"
              subPath: pdf
            - name: demo-tsv
              mountPath: "/code/p_data/tsv"
              subPath: tsv
            - name: demo-csv
              mountPath: "/code/p_data/csv"
              subPath: csv

但应用程序仍然会将主p_data文件夹中的所有内容视为应用程序可访问的单个存储。
这种设置在Kubernetes中是否可以实现,是否存在任何重大缺陷?

6xfqseft

6xfqseft1#

根据正式文件
容器中的进程看到一个文件系统视图,该视图由容器映像的初始内容以及容器内装载的卷(如果定义的话)组成。该进程会看到一个根文件系统,该文件系统最初与容器映像的内容匹配。如果允许,该文件系统层次结构中的任何写入都会影响该进程在执行后续文件系统访问时查看的内容。
由于您尝试挂载三个不同的卷,因此您只需要使用普通卷挂载并将这些卷挂载到正确的路径中,当您尝试将单个卷用于多个子目录时,将使用subPath
尝试删除清单文件中的subPath,如下所示

volumeMounts: 
       - name: demo-pdf 
         mountPath: "/code/p_data/pdf" 
       - name: demo-tsv 
         mountPath: "/code/p_data/tsv" 
       - name: demo-csv 
         mountPath: "/code/p_data/csv"
bqucvtff

bqucvtff2#

Is this setup achievable in Kubernetes and are there any significant drawbacks to this?
是的,在Kubernetes中,你可以实现这一点。但是,在这里,您使用3个不同的持久卷,并将它们挂载到3个不同的mountpath .在这种情况下,不需要subPath,除非您重用那些已经有一些数据的卷。
subPath对于在单个Pod中共享一个卷以供多个使用是有用的。subPath属性指定引用卷内部的子路径,而不是根路径。
https://kubernetes.io/docs/concepts/storage/volumes/#using-subpath

相关问题