docker - 如何使用持久性数据扩展Docker服务中的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以集群模式运行。通过发出以下命令来启动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/

相关文章:

ruby-on-rails - 无法使用Docker Compose将mongodb与Rails容器连接

docker - 无法在容器中运行 Airflow 的任务开始

influxdb - 使用 InfluxDB 子查询减去值

grafana 中的 JMeter 吞吐量值

python-3.x - 将带有标签的 pandas DF 写入 influxdb

postgresql - 在Docker容器内部运行的Postgres上安装和使用pg_cron扩展

docker - 如何为群容器启用SYS_PTRACE

docker - 使用 docker compose 与 docker swarm 建立 Redis 集群

docker-compose - Docker Swarm 不支持使用 GPU 设备

git - 请求的 URL 返回错误 : 502 when running git clone inside a Docker container