如何使用持久数据扩展docker服务中的XDB 我做了什么?
已安装docker,版本详细信息如下:如何使用持久数据扩展docker服务中的XDB 我做了什么?,docker,docker-swarm,influxdb,Docker,Docker Swarm,Influxdb,已安装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在swarm模式下运行。
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在swarm模式下运行。通过发出以下命令启动XDB 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
docker service scale influxdb=5
然后,我在XDB中创建了一个虚拟数据库,并在其中插入了虚拟数据。从XDB获取计数是一致的,因为它是单个服务和单个数据源(装入的卷)。一切都好
放大
使用以下命令将XDB服务扩展到运行5个实例
# 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
docker service scale influxdb=5
现在,当我插入新数据时,它会得到负载平衡,并分别插入到所有五个实例中如何在XDB的所有5个实例中拥有一致的数据?Docker卷与创建它们的计算机紧密耦合,因此它们不能扩展到分布式应用程序。这仍然是docker ro中缺少的一项功能,因为它有一个分布式存储后端。你可以解决这个问题 问题在于卷在其中存储数据的网络存储(如NFS) 有一些项目试图妥善处理这个问题。最明显的是,他中止了这个项目
总之,当涉及到扩展数据库时,docker帮不了什么忙。您需要以不使用Docker的方式处理数据库的扩展。的确如此。您必须使用数据库的缩放系统。不要尝试从不同的容器装载卷,因为这样会损坏整个数据库。