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

时间:2016-02-07 17:22:34

标签: kubernetes google-kubernetes-engine

我想使用一个谷歌计算引擎 磁盘并将其安装到多个位置 Kubernetes Google容器引擎< /强>

我想知道使用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.

从技术上讲,我可以在一个实例上手动安装两个分区。

我想知道它是否是一个错误,是否有另一个解决方案(除了拥有多个磁盘)?

3 个答案:

答案 0 :(得分:5)

看起来Google容器引擎在两者上都需要readOnly

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

答案 1 :(得分:3)

感谢Wernight的问题。

为了将相同音量的(不同分区)安装在多个位置,它必须是只读的。

我打开https://github.com/kubernetes/kubernetes/issues/20835来跟踪这是否是我们想要前进的行为。

答案 2 :(得分:2)

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

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

如果这是一个重要的用例,我建议您在其上提交github问题。我不会立即知道如何进化以解决它,但我认为这不是一个错误的请求。