Docker 带外部负载均衡器的 Swarm - 如何进行集体健康检查
Docker Swarm with external Load Balancer - how to get collective healthcheck
我希望有一些 docker swarm 专家已经配置了一个负载均衡器来支持 docker swarm 多节点设置。在这样一个简化的架构中,如果负载均衡器需要检测管理器节点是否已关闭并停止向其路由流量,那么 "best practice" 是什么? Docker swarm 是否提供可以为每个管理器节点测试的健康端点 (api)?我对其中的一些内容很陌生,而且似乎没有太多内容可以描述我正在寻找的内容。提前致谢
有 metrics endpoint of the engine, and then the engine api,但我认为这不是您想要的应用程序负载均衡器。
我看到大多数人所做的是在 Swarm 节点前放置一个负载均衡器,他们希望处理服务中特定应用 运行 的传入流量,因为 LB 需要知道容器是否是响应(不仅仅是节点的引擎健康)他们应该点击应用程序健康端点,并根据应用程序响应将节点带入和带出该应用程序 LB。
例如,这就是 AWS ELB 开箱即用的方式。
如果您在 Swarm 的端口 80 上有一个已发布的服务,您可以将 ELB 设置为指向您想要处理传入流量的节点,并让它们期望健康的 200/300 return那些节点。如果节点 return 其他内容或不响应,它将从池中删除节点。
然后您可以使用一个完整的监控解决方案来检查节点健康状况并有选择地响应诸如更换节点之类的问题。
我希望有一些 docker swarm 专家已经配置了一个负载均衡器来支持 docker swarm 多节点设置。在这样一个简化的架构中,如果负载均衡器需要检测管理器节点是否已关闭并停止向其路由流量,那么 "best practice" 是什么? Docker swarm 是否提供可以为每个管理器节点测试的健康端点 (api)?我对其中的一些内容很陌生,而且似乎没有太多内容可以描述我正在寻找的内容。提前致谢
有 metrics endpoint of the engine, and then the engine api,但我认为这不是您想要的应用程序负载均衡器。
我看到大多数人所做的是在 Swarm 节点前放置一个负载均衡器,他们希望处理服务中特定应用 运行 的传入流量,因为 LB 需要知道容器是否是响应(不仅仅是节点的引擎健康)他们应该点击应用程序健康端点,并根据应用程序响应将节点带入和带出该应用程序 LB。
例如,这就是 AWS ELB 开箱即用的方式。
如果您在 Swarm 的端口 80 上有一个已发布的服务,您可以将 ELB 设置为指向您想要处理传入流量的节点,并让它们期望健康的 200/300 return那些节点。如果节点 return 其他内容或不响应,它将从池中删除节点。
然后您可以使用一个完整的监控解决方案来检查节点健康状况并有选择地响应诸如更换节点之类的问题。