【问题标题】:Can I mount multiple partitions of a single GCE disk to a Pod?我可以将单个 GCE 磁盘的多个分区挂载到 Pod 吗?
【发布时间】:2016-02-07 17:22:33
【问题描述】:

我想使用单个 google 计算引擎 磁盘 并将它安装到多个地方 Kubernetes Google Container Engine。

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

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

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

【问题讨论】:

  • 看来PV/PVC并不能解决这个问题,因为当有一个10Gi的PV磁盘时,1Gi的PVC,会导致10Gi的索赔。
  • 这是pdName: dist-1 的错字吗?

标签: kubernetes google-kubernetes-engine


【解决方案1】:

看起来 Google Container Engine 两者都需要readOnly

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

【讨论】:

    【解决方案2】:

    感谢 Wernight 的提问。

    为了将同一卷(的不同分区)安装在多个位置,它目前必须是只读的。

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

    【讨论】:

      【解决方案3】:

      我对问题的解释与其他答案不同。为什么不能在单个 pod 中挂载单个 PD 的不同分区,全部读写。 PD 仍然连接到一个节点并被一个 pod 使用。

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

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

      【讨论】:

      • 我认为 Saad Ali 做到了。重要的是避免安装到一个地方并执行ln -s hacks 以在我的应用程序期望的位置拥有文件夹。总的来说,我有相当数量的网站,但它们的构建并未考虑到 Kubernetes。一个例子是 Django,默认情况下建议将上传的媒体通常放在静态文件旁边,而数据库是不同的文件夹,但结果是它需要 2 个文件夹才能挂载。我改变了那些目录结构;这只是一个例子。
      • 另一个用例是GitLab,它需要 3 个挂载点。将这 3 个放在一个磁盘上对我来说更有意义,因为它们应该保持同步。
      • 在一个磁盘上有多个分区意味着一个磁盘共享诸如 IOPS 之类的东西。我不建议这样做,除非你真的需要它,如果没有其他原因,它在 kubernetes 中不能正常工作。也就是说,我不会反对修复它。
      • 我可以共享 IOPS。实际上,我想要的只是多个安装点,因此可以将卷的子文件夹安装到不同的位置。为什么?这与 10GB 磁盘的成本无关,而是将数据保存在一起(如果应该将它们保存在一起),例如,快照将快照服务所需的所有数据。
      • 如果没有请打开github issue。
      猜你喜欢
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多