Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如果副本属性值大于1,如何使用PersistentVolumeClaim?_Kubernetes - Fatal编程技术网

Kubernetes 如果副本属性值大于1,如何使用PersistentVolumeClaim?

Kubernetes 如果副本属性值大于1,如何使用PersistentVolumeClaim?,kubernetes,Kubernetes,在我的StatefulSet部署规范中,我将“副本”定义为2。现在我想使用持久卷(PV)和持久卷声明(PVC),为此我创建了一个PV(使用StorageClass的动态资源调配)和一个PVC,然后在部署规范中使用。我正在AWS上测试部署 问题是只有一个节点能够使用PVC连接到PV。即使我为每个节点创建多个PV和PV,我也不确定如何在部署规范中使用它们,以便每个节点选择不同的PV 错误: Multi-Attach error for volume "pvc-ec99e704-f72e-11e7-8

在我的StatefulSet部署规范中,我将“副本”定义为2。现在我想使用持久卷(PV)和持久卷声明(PVC),为此我创建了一个PV(使用StorageClass的动态资源调配)和一个PVC,然后在部署规范中使用。我正在AWS上测试部署

问题是只有一个节点能够使用PVC连接到PV。即使我为每个节点创建多个PV和PV,我也不确定如何在部署规范中使用它们,以便每个节点选择不同的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

任何指针都会有帮助

我认为您在这里面临两个问题

首先,AWS EBS可以专门连接到一个节点,而对于多个POD,不能使用相同的PVC/PV耦合(称为ROX或RWX模式)

第二,对于扩展部署/状态完整集等,有一种特殊的方法可以以称为volumeClaimTemplate的“动态”方式声明PVC

  volumeClaimTemplates:
  - metadata:
      name: myname
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi
这样,无论何时缩放,您的POD都会自动创建/删除匹配的PVC


这个用例确实需要支持自动PV资源调配,这才是真正有用的,这意味着您要么需要使用受支持的云提供商,要么使用另一种机制,比如GlusterFS with

,我接受您的答案,因为这正是我为解决问题所做的。不过有一个问题,如果我没有在AWS中从之前创建PV,则POD会出现“PersistentVolumeClaim未绑定”错误,PVC会出现“没有可用于此声明的持久卷,并且没有设置存储类”错误。我想您已经提到我们需要自动资源调配支持。“StorageClass”不是出于同样的目的吗?我投了反对票,因为这是“静态”配置的PVs与动态配置的PVs的情况。最后一个是,让我们说,‘更容易’并且众所周知,但我也有与提问者相同的问题:我有一个带有2+副本的STS,我创建了PV和PVC,但我找不到方法告诉STS使用多个PV/PVC。“即使我为每个节点创建多个PV和PV,我也不知道如何在部署规范中使用它们,以便每个节点选择不同的PV。”有人知道吗?这并不是说它让我很烦恼,但它确实解决了最初的问题。另外,这决不是一个促进动态pv的响应,这是一个使用静态配置的pv的答案,只有使用模板动态创建pv。事实上,它与PVs的动态供应无关,PVs是一种完全独立的机制,取决于特定的集群/云提供商