使用 Docker 集群模式部署 Cloudsuite 基准测试

Deploy Cloudsuite benchmark using Docker swarm mode

我想部署一个名为 cloudsuite 的基准测试,使用 swarm 模式来利用其在主机之间分布的优势。我尝试使用的案例(解释 here)有 4 个组成部分:

文档中说明的部署基准的方法是使用 docker run。例如,部署 Web 服务器使用此命令:

$ docker run -dt --net=host --name=web_server cloudsuite/web-serving:web_server \
  /etc/bootstrap.sh ${DATABASE_SERVER_IP} ${MEMCACHED_SERVER_IP} ${MAX_PM_CHILDREN}

如您所见,它具有自定义入口点和一些附加参数。其他组件也一样。关于这些情况,我有两个问题:

1- 我可以在 swarm 模式下使用服务来部署这些容器吗?如何在创建服务的命令中给出入口点和参数?

2- 据我所知,这些服务是为提供长期服务的容器提供的,例如 nginx 或 mysql 服务器。但是我的最后一个组成部分,faban client,不是一个长期的事情。它只是启动并向其他组件发送一些请求并收集一些结果。而且我也需要从这个容器中得到这些结果。也可以是服务吗?

我已经阅读了 docker、docker swarm 的文档和许多其他关于它的帖子,但我仍然不确定我是否正确理解 docker swarm 或没有。

好吧,我找不到使用群模式部署基准测试的方法。所以第一个问题可能仍然悬而未决。 我是怎么知道第二个问题的。由于基准测试的客户端组件不是服务,因此它不是服务,不应作为一个服务来实现。使用 docker swarm(不是 swarm 模式)很容易部署覆盖网络和 运行 所有组件相互通信。您可以查看我的 repository in Github 以获得此类部署的 bash 脚本。然而,为了展示客户端组件应该如何 运行,我为它带来了我的代码行:

sudo docker -H :4000 run \
--network web-serving-network \
--name faban_client \
cloudsuite/web-serving:faban_client {WEB_SERVER_IP}