我有一个带有ALB的ecs fargate集群来路由流量。 docker容器正在侦听端口9000。
我的容器可通过https在alb dns名称上访问。这样可行。但是他们一直在目标群体中停止/取消注册,并且在目标群体中注册后立即重新启动,只是处于不健康状态。
ALB在443上只有一个监听器。安全组的设置使得sg-alb
允许端口9000上的出站流量到sg-fargate
,而sg-fargate
允许来自sg-alb
的端口9000上的所有入站流量。
目标组也设置为使用端口9000。
我不确定问题是什么,或者如何调试它。
一切都用cdk设置。不确定这是否相关。
事实证明这对安全组来说不是问题。巧合的是,它在我改变安全组时起作用。
似乎容器启动速度不够快,无法在启动运行状况检查时接受来自alb的连接。
有什么帮助:
healthCheckGracePeriod
改为两分钟interval
此外,在我的应用程序日志中,服务看起来像是一次获得两个运行状况检查请求。默认情况下,unhealthyThreshold
设置为2.因此,只有在进行一次健康检查后,服务才会被标记为不健康。