如何使用持续数据扩展Docker服务中的涌入



我做了什么?

安装了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以蜂群模式运行。通过发出以下命令开始涌入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

现在,当我插入新数据时,它会平衡负载并分别插入所有五个实例。如何在InfuxdB的所有5个实例中拥有一致的数据?

docker卷紧密耦合到创建的机器,因此它们不会为分布式应用程序扩展。这仍然是Docker RO中缺少的功能,具有分布式存储后端。你可以解决这个问题通过拥有诸如NFS之类的网络存储在其中存储IT数据的问题是问题。

有些项目试图正确处理此问题。最值得注意的是Rexray和Tyhe停产的Project Flocker。

总而言之,当涉及到扩展数据库时,Docker不会有太大帮助。您需要以不拥有Docker的方式来处理按照您的方式缩放数据库。

最新更新