Nei*_*den 8 amazon-ec2 amazon-web-services amazon-ecs amazon-elb amazon-vpc
我有一个非常简单的 ECS 容器,它侦听端口 5000 并写出 HelloWorld,以及它正在运行的实例的主机名。我想使用 ECS 部署其中的许多容器并对它们进行负载平衡,以便真正了解其工作原理。它在一定程度上工作,但我的健康检查失败(超时),这导致容器任务上下反弹。
每个私有子网都有一条到 10.0.0.0/19 的规则,以及一条到 0.0.0.0/0 的默认路由到与其相同 AZ 的公有子网中的 NAT 实例。
每个公有子网都具有相同的 10.0.0.0/19 路由和到 Internet 网关的 0.0.0.0/0 的默认路由。
我的实例位于一个组中,该组允许从 ALB 所在的安全组出口到任何地方并在端口 32768 - 65535 上进入。
ALB 位于一个安全组中,该安全组仅允许在端口 80 上进入,但到我的 ECS 实例在任何端口/协议上的安全组的出口
当我提出所有这些时,它确实有效 - 我可以获取 ALB 的公共 dns 记录并刷新,我看到从我的容器应用程序返回给我的响应告诉我主机名。然而,这正是我想要实现的,它未通过运行状况检查并且容器被排空,并替换为另一个未通过运行状况检查的容器。如此循环下去,我从未见过一次成功的健康检查。
我可以通过负载均衡器,从 ECS 实例本身,并使用实例私有 IP 和来自 ALB 所在公共子网中另一台机器的端口。ECS 服务在没有超时的情况下无法看到此运行状况检查一次。我到底会错过什么??
问题多于答案。但也许他们会带你走向正确的方向。
您说可以通过 ALB 访问容器应用程序,但节点未通过健康检查。在运行状况检查成功之前,ALB 不应允许连接到该节点。因此,如果您通过 ALB 连接到节点,则 ALB 必须经过测试并确定其运行状况良好。是否是不同的健康检查导致了节点的终止?
您是否检查过 CloudTrail,看看它是否有任何关于触发拆卸的线索?拆除是由ALB还是伸缩组触发的?是否可能是自动伸缩组的伸缩标准错误?
祝你好运
归档时间: |
|
查看次数: |
9809 次 |
最近记录: |