即使在不同的主机中,相同的数据量也附加到多个容器

时间:2018-05-12 14:51:54

标签: docker kubernetes docker-swarm flocker

由于flocker,我能够将docker卷绑定到swarm中的特定容器,但现在我将拥有我服务器的多个副本(进行负载平衡),所以我正在搜索某些内容将相同的数据卷绑定到docker服务的多个副本。 在flocker documentaiton我发现了

  

多个容器可以访问同一个卷吗? Flocker的工作原理   创建卷和容器的1对1关系。这意味着   您可以为一个容器和这些卷创建多个卷   将始终遵循该容器。

     

Flocker将卷附加到单个代理主机(docker host)   而且这一次只能是一个主机,因为Flocker附加了   基于块的存储。不同主机上的节点无法访问相同的节点   volume,因为它一次只能附加到一个节点。

     

如果同一主机上的多个容器想要使用相同的卷,   他们可以,但要小心,因为多个容器访问   相同的存储量可能会导致损坏。

     

我可以将单个卷附加到多个主机吗?目前不支持   来自多连接后端,如只读模式下的GCE,或类似NFS   像存储这样的后端,或像GlusterFS这样的分布式文件系统   需要整合。 Flocker主要关注块存储用途   将卷一次附加到单个节点的情况。

所以我认为不可能用flocker做我想做的事。 我可以使用不同的协调器(k8s),如果这可以帮助我,即使我没有经验。

我不会使用NAS / NFS或任何分发的文件系统。

有什么建议吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

在k8s中,如果支持卷的技术支持共享访问,则可以同时将卷安装到不同的Pod。

Kubernetes Persistent Volumes中所述:

  

访问模式PersistentVolume可以任何方式安装在主机上   资源提供者支持。如下所示,提供商将   具有不同的功能,每个PV的访问模式都设置为   特定卷支持的特定模式。例如,NFS   可以支持多个读/写客户端,但可能支持特定的NFS PV   以只读方式导出到服务器上。每个PV都有自己的一套   访问模式描述特定PV的功能。

     

访问模式为:

     
      
  • ReadWriteOnce - 卷可以由单个节点以读写方式挂载
  •   
  • ReadOnlyMany - 卷可以由许多节点以只读方式挂载
  •   
  • ReadWriteMany - 可以通过许多节点以读写方式挂载卷
  •   

支持ReadOnlyMany模式的卷类型:

  • AzureFile
  • CephFS
  • FC
  • FlexVolume
  • GCEPersistentDisk
  • Glusterfs
  • 的iSCSI
  • Quobyte
  • NFS
  • RBD
  • ScaleIO

支持ReadWriteMany模式的卷类型:

  • AzureFile
  • CephFS
  • Glusterfs
  • Quobyte
  • RBD
  • PortworxVolume
  • VsphereVolume(当pod配置时有效)
相关问题