【问题标题】:Volume claim on GKE / Multi-Attach error for volume Volume is already exclusively attachedGKE 上的卷声明/卷卷的多附加错误已以独占方式附加
【发布时间】:2018-04-03 20:51:50
【问题描述】:

问题似乎一直是solved a long time ago,由于答案和cmets没有提供真正的解决方案,我想从有经验的用户那里得到一些帮助

错误如下(描述pod时,保持ContainerCreating状态):

Multi-Attach error for volume "pvc-xxx" Volume is already exclusively attached to one node and can't be attached to another 

这一切都在 GKE 上运行。我有一个以前的集群,问题从未发生过。我在创建这个新集群时重用了同一个磁盘——不确定它是否相关

Here is the full yaml config files(我将相关代码部分留下注释以突出显示它;它不是在有效使用时)

如果有明显的解决方法,请提前致谢

【问题讨论】:

  • 它实际上是否附加到任何 Pod 上?你能展示一下你是如何使用这个 pvc 的,以及你是如何创建它的吗?请提供更多信息,以便我们提供帮助。
  • @JanosLenart 添加了完整配置。集群有两个节点。假设我有两个副本。似乎磁盘被锁定在两个节点之一,如果其中一个 pod 转到另一个节点,则会出现描述的错误;我只是不知道在哪里看。同时,这其实是似乎早就解决了的问题;想知道我的集群是否没有拧到某个地方。我已经按照谷歌的广告格式化了磁盘;在以前的集群上使用 ti 没有问题,具有完全相同的 pv/pvc/deployment 配置

标签: kubernetes google-cloud-platform google-kubernetes-engine persistent-volumes


【解决方案1】:

根据您的描述,您所经历的正是应该发生的。

您在PV/PVC definition 中使用gcePersistentDiskaccessModeReadWriteOnce - 这意味着这个 PV 只能附加到单个 Node(这里强调 Node,可以有多个 Pod 运行在同一个节点使用相同的 PV)。您对此无能为力。 gcePersistentDisk 就像一个远程块设备,不可能同时挂载在多个节点上(除非只读)。

有一个不错的table that shows which PVs support ReadWriteMany(即同时对多个Nodes进行写访问):

重要提示! 一个卷一次只能使用一种访问模式安装,即使它支持多种访问模式。例如,一个 GCEPersistentDisk 可以由单个节点挂载为 ReadWriteOnce,或由多个节点挂载为 ReadOnlyMany,但不能同时挂载。

【讨论】:

  • 好的,现在 100% 有意义。我没有抓住重点,只是没有在前一个上设置副本
  • 我遇到了同样的错误,但我真的不明白如何确定 PVC 绑定到哪个节点以及如何将其“移动”到需要 PVC 的 pod - 一个 pod我已固定到一个节点(按标签)。我使用了helm install stable/jenkins,并删除了该部署并重新helm installed 几次。一旦我了解了“谁”或什么提出了要求,这可能非常简单。
  • 回到这个;强烈建议在您的 pod/deployments 上使用 nodeSelector 吗?为了让它登陆相关节点。另外,当您最终更改节点时会发生什么?您可能需要手动附加磁盘吗?感觉使用磁盘比最初看起来更难,而且远非“自动化”。举这个例子(cloud.google.com/kubernetes-engine/docs/tutorials/…),或多或少对于初学者来说,他们只是没有暴露这两个非常潜在的问题;感觉有点误导
  • 有没有办法分离磁盘并移动它?
【解决方案2】:

您的部署 yaml 显示 5 个副本,这不适用于 ReadWriteOnce 模式下的 GCE PD。 GCE PD只能在ReadOnlyMany模式下附加到多个节点。

如果您需要跨所有副本共享、可写存储,那么您应该考虑使用 NFS 或 Gluster 等多写入器解决方案。

如果您希望每个副本都有自己的磁盘,那么您可以使用 StatefulSets,每个副本都有一个 PVC。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 2021-11-21
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 2023-01-10
    相关资源
    最近更新 更多