我是docker-swarm
的新手,对了解docker-swarm
如何为一项服务分配传入请求的内部工作方式非常感兴趣。
例如,我部署了一个服务和两个节点上有10个副本的堆栈。当我调出节点5时,容器确实出现在节点1上,而其他5出现在节点2上。现在,我从10个不同的浏览器实例向同一服务发出10个http请求,每个容器最终是否每个请求只有一个请求?如果是轮循,我会这样认为。但是,我没有从刚刚部署的堆栈中观察到相同的行为。
我调出了上面配置的堆栈,并提出了10个请求。当我这样做时,分散的负载比集中的分散,但只有7个容器收到10个请求,而3个是免费的。
这告诉我这不是均匀分配的轮询。如果不是,那么docker services api会遵循哪种算法来确定哪个容器将服务下一个请求?
当我搜索docker swarm的内部工作原理时,我最终看到了这里的文章:https://docs.docker.com/engine/swarm/ingress/
这对进入和路由网格很有趣,但是仍然不能回答我的原始问题。
有人吗?