在我的StatefulSet部署规范中,我有'副本'定义为2.现在我想使用持久卷(PV)和持久卷声明(PVC),为此我创建了一个PV(使用StorageClass进行动态配置)和一个PVC,然后我在部署规范中使用了它。我正在测试AWS上的部署。
问题是只有一个节点能够使用PVC连接到PV。即使我为每个节点创建了多个PV和PVC,我也不确定如何在部署规范中使用它们,以便每个节点选择不同的PV。
错误:
Multi-Attach error for volume "pvc-ec99e704-f72e-11e7-87a6-065468f047a0" Volume is already exclusively attached to one node and can't be attached to another
任何指针都会有帮助!
答案 0 :(得分:1)
我认为您在这里遇到两个问题。
对于初学者,AWS EBS可以专门连接到一个节点,o不能为多个POD(所谓的ROX或RWX模式)使用相同的PVC / PV对。
其次,对于扩展的部署/状态集等,有一种特殊的方式来以一种动态的方式声明PVC"叫做volumeClaimTemplate。
volumeClaimTemplates:
- metadata:
name: myname
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
有了这个,每当缩放时,您的pod将自动创建/删除匹配的PVC。
这个用例确实需要支持自动PV配置,但实际上非常有用,这意味着您需要在受支持的云提供商上或使用其他机制,如GlusterFS Heketi