将Docker容器聚类在HA的负载平衡器后面

时间:2015-07-04 17:11:19

标签: java docker cluster-computing load-balancing high-availability

大多数Docker文献都称自己可以在同一台物理服务器上运行数百甚至数千个容器。我想知道从负载平衡/集群角度来看这是什么样的。

假设我有一个RESTful Web服务fizz-service.war。通常情况下,"正常"虚拟机,我可能会将此服务部署到50个虚拟机(例如,fizzsvc01.example.comfizzsvc50.example.com),然后在服务URL后面对这些虚拟机进行集群/负载平衡,例如http://fizz-service.example.com。当请求进入时,负载均衡器会选择一个节点来转发请求,例如fizzsvc34:8080/fizz-service

我想知道它如何与Docker容器一起使用。如果我有相同的50个容器,例如5个节点:

  • 这些节点可以是虚拟机还是物理服务器?
  • 对于在相同节点上运行的容器,它们各自在自己的端口上运行吗?否则,你怎么能在同一个端口上运行50个服务实例?
  • 使用"普通虚拟机",负载均衡器配置了构成池的所有虚拟机,然后我只是将我的服务部署到池中的每个虚拟机,这如何随Docker而改变容器?我的负载均衡器(可能是一个单独的基础设施,如F5或nginx)" 如何知道"关于所有可用于分配负载的容器?

当我进入Docker-land时,我的整个HA /负载平衡方法是否需要改变?

1 个答案:

答案 0 :(得分:3)

每个容器将在专用端口上运行(通常由Docker分配),您需要一些机制来跟踪每个容器,以便为负载均衡器生成配置。

所以没有什么真正改变,除了容器的数量可能更大,需要自动化才能实用。与虚拟机相比,容器更加便捷。