使用AWS Network ELB:注册实例至少需要四分钟才能变得健康#39;实例和服务已经运行了好几天,我只是取消注册,然后在同一目标组上注册,作为部署的一部分。如果我使用脚本或使用AWS UI,则它没有区别。
健康检查设置是:
我可以看到连接请求在指定的任何端口上进入,服务响应正确,然后关闭连接。据我所知,这应该足以让ELB确定实例是健康的(一旦阈值已经通过)。这应该意味着我的实例在注册时间之后的启动和运行时间不超过90秒。我不知道为什么会发生这种情况,应该是直截了当的。
鉴于我已经满足了我的实例健康的已知标准,我无法确定会造成如此长时间延迟的原因。他们坐在Elb.InitialHealthChecking
原因约4分钟。有关进一步测试的任何想法,以确定延迟的原因?
答案 0 :(得分:1)
我们在NLB上遇到了这个问题,并在2018年3月20日的AWS支持下提出了这个问题。他们的回复:
这是一个已知问题,新注册的实例在较长时间内保持初始状态,我们的内部团队已经在解决此问题。不幸的是,目前我们还没有针对修复的ETA。
他们确认,在正常情况下,目标应保持initial
状态,直到 HealthyThreshold 健康检查通过。
答案 1 :(得分:1)
这接近于 NLB 的预期行为。
<块引用>是的,当您向网络负载均衡器注册新目标时,预计需要 90 到 180 秒来完成注册过程。注册完成后,网络负载均衡器运行状况检查系统将开始向目标发送健康检查。新注册的目标必须在配置的时间间隔内通过健康检查才能进入服务并接收流量。例如,如果您将健康检查配置为 30 秒的间隔,并且需要 3 次健康检查才能变为健康,则新注册的目标可以进入服务的最短时间是新目标通过其第一次健康检查后的 90 秒。
同样,当您从网络负载均衡器取消注册目标时,预计需要 90-180 秒来处理请求的取消注册,之后它将不再接收新连接。在此期间,Elastic Load Balancing API 将报告处于“耗尽”状态的目标。目标将继续接收新连接,直到注销处理完成。在配置的注销延迟结束时,目标将不会包含在目标组的描述目标健康响应中,并且在查询特定目标时将返回“未使用”,原因为“Target.NotRegistered”。>
支持人员还确认没有任何正在进行的工作使其快于 3 分钟。