我做了什么?
安装了docker,版本详细信息如下:
Server:
Version: 17.11.0-ce
API version: 1.34 (minimum version 1.12)
Go version: go1.8.3
Git commit: 1caf76c
Built: Mon Nov 20 18:36:09 2017
OS/Arch: linux/amd64
Experimental: false
Docker以集群模式运行。通过发出以下命令来启动influxdb docker服务。
# create network
docker network create influxdb-network --driver overlay
# create the service
docker service create --name 'influxdb' --network 'influxdb-network' --mount type=volume,source=influxdb-volume,destination=/var/lib/influxdb influxdb:1.4
然后,我在influxdb中创建了一个虚拟数据库,并将虚拟数据插入其中。从influxdb获取计数是一致的,因为它是单个服务和单个数据源(已装载的卷)。都好。
放大
使用以下命令扩展influxdb服务以运行5个实例。
docker service scale influxdb=5
现在,当我插入新数据时,它将达到负载平衡并分别插入所有五个实例。 如何在influxdb的所有5个实例中拥有一致的数据?
最佳答案
Docker卷与创建它们的机器紧密耦合,因此无法针对分布式应用程序进行扩展。在具有分布式存储后端的docker ro中,这仍然是缺少的功能。您可以解决此问题
通过具有网络存储(例如NFS)在该卷中存储数据来解决此问题。
有一些项目试图正确处理此问题。最值得注意的是RexRay和tyhe中止了项目Flocker。
总而言之,在扩展数据库时,docker并不会提供太多帮助。您需要以无需Docker的方式来处理数据库扩展。
关于docker - 如何使用持久性数据扩展Docker服务中的InfluxDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47863884/