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 我可以将单个GCE磁盘的多个分区装载到Pod吗?_Kubernetes_Google Kubernetes Engine - Fatal编程技术网

Kubernetes 我可以将单个GCE磁盘的多个分区装载到Pod吗?

Kubernetes 我可以将单个GCE磁盘的多个分区装载到Pod吗?,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我想使用一个谷歌计算引擎磁盘,并将其装载到Kubernetes谷歌容器引擎的多个位置 我想知道使用persistentVolumeClaim是否可行,但我所期望的是能够挂载同一磁盘的两个分区: ... volumes: - name: database gcePersistentDisk: pdName: dist-1 fsType: ext4 partition: 1 readOnly: true

我想使用一个谷歌计算引擎磁盘,并将其装载到Kubernetes谷歌容器引擎的多个位置

我想知道使用
persistentVolumeClaim
是否可行,但我所期望的是能够挂载同一磁盘的两个分区:

  ...
  volumes:
    - name: database
      gcePersistentDisk:
        pdName: dist-1
        fsType: ext4
        partition: 1
        readOnly: true
    - name: media
      gcePersistentDisk:
        pdName: disk-1
        fsType: ext4
        partition: 2
        readOnly: true
分别装载其中任何一个都可以工作,但尝试装载两个都会出现错误:

FailedMount     Unable to mount volumes for pod "frontend-ni7uf_foo": Could not attach GCE PD "disk-1". Timeout waiting for mount paths to be created.
从技术上讲,我可以在单个实例上手动挂载这两个分区


我想知道这是否是一个bug,以及是否有其他解决方案(除了有多个磁盘之外)?

看起来Google Container Engine在这两个方面都需要
只读

containers:
  - volumeMounts:
      - readOnly: true
volumes:
  - gcePersistentDisk:
      readOnly: true

谢谢你今晚的提问

为了将同一卷的(不同分区)装入多个位置,此时必须是只读的


我开始追踪这是否是我们想要前进的行为。

我对这个问题的解释与其他答案不同。为什么不能在一个pod中安装单个PD的不同分区,所有分区都是读写的。PD仍然连接到一个节点并由一个pod使用

唯一的答案是我们没有把它当作一个用例。根据我们的经验,大多数人不会以这种方式对设备进行分区,除非在引导操作系统时


如果这对您来说是一个重要的用例,我建议您提交一个github问题。我现在不知道如何发展来解决这个问题,但我不认为这是一个错误的要求。

看起来PV/PVC并不能解决这个问题,因为当有一个10Gi的PV磁盘时,一个1Gi的PVC将导致10Gi的声明。这是不是pdName:dist-1
中的一个输入错误?我认为是Saad Ali做的。最重要的是要避免安装到一个地方,并在我的应用程序需要的地方进行
ln-s
黑客攻击。总的来说,我有相当数量的网站,它们不是在考虑库伯内特的情况下建立的。一个例子是Django,默认情况下,它建议将上传的媒体通常放在静态文件旁边,而数据库是不同的文件夹,但结果是需要两个文件夹才能装载。我为这些更改目录结构;这只是一个例子,另一个用例需要3个挂载点。将这3个分区放在一个磁盘上对我来说更有意义,因为它们应该保持同步。在一个磁盘上有多个分区意味着一个磁盘共享IOPS之类的东西。除非你真的需要它,否则我不会建议你这么做,如果没有其他原因,那就是它在库伯内特斯不起作用。也就是说,我不会反对修复它。我可以共享IOPS。实际上,我只希望有多个装载点,这样一个卷的子文件夹就可以装载到不同的位置。为什么?与其说是10GB磁盘的成本,不如说是将数据保存在一起(如果应该的话),例如,快照可以快照服务所需的所有数据。如果没有,请打开github问题。