docker - 带有外部负载均衡器的 Docker Swarm - 如何进行集体健康检查
问题描述
我希望有一些 docker swarm 专家已经配置了负载均衡器来支持 docker swarm 多节点设置。在这样一个简化的架构中,如果负载均衡器需要检测管理节点是否已关闭并停止将流量路由到它,那么“最佳实践”是什么?Docker swarm 是否提供了一个可以为每个管理器节点测试的健康端点(api)?我对此有些陌生,似乎没有很多东西可以描述我正在寻找的东西。提前致谢
解决方案
有引擎的指标端点,然后是引擎 api,但我认为这不是应用程序负载均衡器想要的。
我看到大多数人所做的是在 Swarm 节点前面放置一个负载均衡器,他们想要处理服务中运行的特定应用程序的传入流量,并且因为该 LB 需要知道容器是否正在响应(不仅仅是节点的引擎运行状况)他们应该点击应用程序健康端点,并根据应用程序响应将节点进出该应用程序 LB。
例如,这就是 AWS ELB 开箱即用的工作方式。
如果您在 Swarm 的 80 端口上发布了服务,您可以将 ELB 设置为指向您要处理传入流量的节点,并让它们期望在这些节点上获得 200/300 的健康回报。如果节点返回其他内容或不响应,它将从池中删除节点。
然后,您可以使用一个完整的监控解决方案来检查节点的健康状况,并有选择地响应更换节点等问题。
推荐阅读
- javascript - ReactJS 与 ios WKWebView 通信
- java - 尝试上传使用 Android 扫描库扫描的图像时出现存储异常
- docker - 使用 MOUNT VOLUME 附加时,我的容器未运行
- vue.js - Vue.js 中的全局方法和实例方法有什么区别?
- julia - Julia - 嵌套 unionall 的无法识别的子类型
- javascript - 如何在 post 函数中调用变量
- django - AttributeError:'tuple'对象在views.py中没有属性'get'
- regex - 如何匹配给定模式的字符串中任何位置的部分或整个单词的开头?
- ios - UISearchController / UINavigationBar 在 UINavigationController 中使用时显示损坏的动画
- python - python2中如何将str类型的unicode字符串转换为真正的unicode字符串?