卷的GKE/Multi-Attach错误的卷声明卷已以独占方式附加



这个问题似乎早就解决了,因为答案和评论并没有提供真正的解决方案,我想从经验丰富的用户那里得到一些帮助

错误如下(在描述保持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配置文件(我将留下相关的代码部分以突出显示它;它不是在有效使用时)

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

根据你的描述,你正在经历的正是应该发生的事情。

您在PV/PVC定义中使用gcePersistentDiskaccessModeReadWriteOnce-这意味着该PV只能连接到单个节点(此处强调结点,可以有多个Pod使用同一PV在同一接点上运行)。对此你无能为力;gcePersistentDisk就像一个远程块设备,不可能同时安装在多个节点上(除非只读)。

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

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

您的部署yaml显示了5个副本,这些副本在ReadWriteOnce模式下无法与GCE PD一起工作。GCE PD只能在ReadOnlyMany模式下连接到多个节点。

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

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

相关内容

  • 没有找到相关文章

最新更新