20

问题似乎很久以前就解决了,因为答案和评论没有提供真正的解决方案,我想从有经验的用户那里得到一些帮助

错误如下(在描述 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 上运行。我有一个以前的集群,问题从未发生过。我在创建这个新集群时重用了同一个磁盘——不确定它是否相关

这是完整的 yaml 配置文件(我将相关代码部分留下注释以突出显示它;它不是在有效使用时)

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

4

2 回答 2

28

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

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

有一个很好的表格显示了哪些 PV 支持ReadWriteMany(即同时在多个 节点上进行写访问):

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

于 2017-10-23T15:30:40.003 回答
9

ReadWriteOnce您的部署 yaml 显示 5 个副本,这在模式下无法与 GCE PD 一起使用。GCE PD 只能在ReadOnlyManymode 下附加到多个节点。

如果您需要跨所有副本的共享、可写存储,那么您应该研究像 NFS 或 Gluster 这样的多写入器解决方案。

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

于 2017-10-23T18:06:37.267 回答