Docker群集负载平衡 – 如何给服务通用名称?

我读了群路由网格

我创build了一个使用tomcat服务器的简单服务,并在8080处侦听。

docker swarm init我在node1创build了一个节点pipe理器。

docker swarm join /tokens我使用了节点2和节点3的pipe理器提供的令牌来创build工作者。

docker node ls显示了我的服务的5个实例,3个在节点1上运行,1个在节点2上运行,另一个在节点3上。

docker service create image我创build的服务。

docker service scale imageid=5缩放它。

我的应用程序使用在JVM级别维护的primefaces序号。

如果我点击http://node1:8080/service 25次,所有的请求都会到达node1。 如何平衡节点?

如果我点击http://node2:8080/service ,它会转到节点2。

为什么不使用循环法?

释疑:

  1. 上述步骤是否有问题?
  2. 我错过了什么?
  3. 我觉得我失去了一些东西。 像普通服务名称http://domain:8080/service ,swarm将以循环方式工作。

我只想了解群集模式。 我目前对外部负载均衡器不感兴趣。

如何在行动中看到群体负载平衡?

Docker在每个连接端口上进行循环负载均衡。 只要连接完成,它就会继续到同一个实例。

Http允许连接保持活动并重用。 浏览器利用这种行为,通过打开连接来加速以后的请求。 要testing循环负载均衡,您需要禁用保持活动状态的设置,或切换到像curl或wget这样的命令行工具。