amazon-web-services - AWS 应用程序负载均衡器运行状况检查失败
问题描述
我有一个带有 ALB 的 ecs fargate 集群来将流量路由到。docker 容器正在侦听端口 9000。
我的容器可以通过 https 通过 alb dns 名称访问。这样可行。但是他们不断地从目标组中停止/注销,并且在他们在目标组中注册后立即重新启动以处于不健康状态。
ALB 在 443 上只有一个侦听器。设置了安全组,以便sg-alb
允许端口 9000 上的出站流量sg-fargate
和sg-fargate
允许端口 9000 上的所有入站流量sg-alb
。
目标组也设置为使用端口 9000。
我不确定问题是什么,或者如何调试它。
一切都是用cdk设置的。不确定这是否相关。
解决方案
事实证明,这不是安全组的问题。只是巧合,它在我更改安全组时起作用。
似乎容器启动的速度不够快,无法在启动健康检查时接受来自 alb 的连接。
有什么帮助:
- 改为
healthCheckGracePeriod
两分钟 - 调整目标组的健康检查参数
interval
,,unhealthyThreshold
,healthyThreshold
此外,在我的应用程序日志中,该服务似乎一次收到两个运行状况检查请求。默认情况下,unhealthy threshold
设置为 2。因此,服务可能仅在一次健康检查后才被标记为不健康。
推荐阅读
- excel - 用 Cribbage 手数 15
- c++ - 使用 Array 的结构在堆中创建动态数组
- elasticsearch - 是否可以只从 Elasticsearch 中检索 doc id 和 score 而无需执行搜索的 fetch 阶段?
- javascript - JS/TS Promises - 解析(对象)数组,但解析时为空
- python - VSCode:如何在每次使用 VS Code 任务运行之前自动清除 Python 终端输出窗口?
- reactjs - 在 componentDidMount for 循环中向数组中添加多行
- scala - 从标准 Akka Actor 迁移到具有背压和节流的 Akka Streams
- mongodb - Sitecore 8.1 MongoDB 集合未更新
- python - 尽管标头从那里开始,但 CORS 标头“Access-Control-Allow-Origin”丢失
- log4net - 当应用程序作为服务运行时,Log4net RollingFileAppender 不写入