如何解决群模式下的已复制Docker容器是否包含多个数据副本?
我最近开始学习docker。但是,当研究群体模式时,我发现容器可以按比例放大。我想知道的是,一旦在复制模式下缩放conatiner,容器内的数据也将被复制吗?还是会产生新的容器?
例如,假设我最初仅使用1个副本创建了mysql服务。我在该mysql容器中创建和更新表。后来我将其缩放到3,新产生的容器会包含相同的表数据吗?还会在三个docker实例之间连续复制数据吗?
解决方法
复制的服务将在每个容器中使用新的容器实例。 Swarm并不关心要存储在卷中的持久性数据的复制。
取决于卷插件(例如本地驱动程序/ w remote nfs共享),您只能一次读写一次或多次读写。即使您的卷允许多次读写,服务副本也可能不支持该副本,例如,如果您将n个副本指向同一卷,则mysql将无法工作。例如,您可以利用swarm service template变量将卷指向相同nfs共享的不同目标文件夹。
此外,随着集群的发展,您将需要拥有一个可以从所有节点访问的存储,因为容器可能会死亡并在另一个节点上重新生成。因此,您要么需要使用基于NFS或CIFS的远程共享(请参见用法示例nfs cifs),要么使用Ceph或GlusterFS这样的存储群集,或者像Portworx这样的云本地存储。虽然您必须照顾HA的远程共享解决方案,但仍可以为存储群集和云本机存储内置数据复制。
如果容器化服务本身知道群集/副本,通常最好不要使用swarm副本机制-除非所有实例都可以使用相同的参数集启动。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。