ELB 健康检查行为 - 健康阈值
Posted
技术标签:
【中文标题】ELB 健康检查行为 - 健康阈值【英文标题】:ELB health check behavior - Health Threshold 【发布时间】:2014-10-02 04:09:39 【问题描述】:在设置 ELB 健康检查的对话框中指出:
如果一个实例没有通过健康检查,它会被自动移除 从负载均衡器。自定义健康检查以满足您的 具体需求。
我知道当运行状况检查失败时,它将从 ELB 后面删除实例。我的问题是围绕“健康阈值”设置。当您将鼠标悬停在那里的帮助上时,它会显示:
在声明 EC2 之前连续健康检查成功的次数 实例健康。
如果实例被声明为健康,它是否会被拉回负载均衡组?
【问题讨论】:
【参考方案1】:这在一定程度上取决于您如何配置环境。
例如,如果您使用 ELB 手动注册 EC2 实例...它将根据您的运行状况检查结果显示“InService”或“OutOfService”状态。除了决定是否将流量路由到 EC2 实例之外,此时不采取任何操作。 如果它是“OutOfService”,它可以通过超过您定义的健康阈值再次自动变为“InService”。
在这种情况下,您的“OutOfService”实例仍与负载均衡器相关联,但负载均衡器在恢复健康状态之前不会使用它。负载均衡器将继续 ping 您的实例,直到您手动从负载均衡器中删除该实例,或修复导致该实例停止服务的问题。
但在其他情况下,负载均衡器将没有机会无限期地继续 ping 您的实例:
如果您的运行状况不佳的实例是 has specified ELB health checks 的自动缩放组的成员,则会安排替换它。这将终止现有实例,并启动一个与您的 ELB 关联的新实例。
如果您的实例在很长一段时间内处于 OutOfService 状态,它可能无法恢复服务。一个简单的解决方法是从负载均衡器中注销实例,然后重新注册。
【讨论】:
谢谢你的回答,但我还是有点困惑。你是说 ELB 永远不会从实例列表中物理删除失败的实例(这是我解释帮助文本的方式),而是只会停止向它发送流量? 好的——刚刚做了一个测试,你是对的。它仅将状态设置为 OutOfService 或 InService。它不会从实例列表中物理删除节点。 @avvi 太棒了!澄清一下:终止实例实际上是一个单独的(但相关的)活动,与scaling 的关系比负载平衡更重要。 EC2 Auto Scaling 可以通过监控 ELB 健康检查并终止不健康的实例来与 ELB 集成。以上是关于ELB 健康检查行为 - 健康阈值的主要内容,如果未能解决你的问题,请参考以下文章