【问题标题】:Health check on container port and host port in ECS + ALBECS + ALB中容器端口和主机端口的健康检查
【发布时间】:2017-10-29 10:39:47
【问题描述】:

我在 ECS 中的部署有问题。

我尝试在前面有 ALB 的 2 个 EC2 实例上部署 2 个 docker 映像的 4 个实例。

所以在我的任务定义中,我使用动态端口映射(容器端口 80 上的 2 个 Nginx)。

这会给我的目标群体的健康检查带来麻烦。 事实上,对于每个实例,我都会对动态端口(没问题)和容器端口(80)进行健康检查。

所以动态端口说,没关系。而集装箱港口,逻辑上说不健康...... (就像我的截图一样)

那么你能帮我找出为什么我会出现这种类型的错误吗(这个错误使我的服务器每 5 分钟终止一次......)

提前感谢您的帮助:D

【问题讨论】:

  • 为您的实例启用日志记录。当这发生在我身上时,这意味着实例抛出了一个错误。

标签: amazon-web-services amazon-ec2 amazon-ecs health-monitoring elastic-load-balancer


【解决方案1】:

所以在我看来,您似乎并没有完全使用动态端口映射。对于动态端口映射,您有

客户端->ALB(80端口)->EC2主机(动态端口)->容器(动态端口)->nginx(80端口)

您的任何运行状况检查都不应该使用端口 80,因为唯一使用端口 80 的东西是到您的应用程序和 nginx 的外部连接(但它被映射到不同的端口)。对于 ALB 运行状况检查,您真正需要的只是一条命中路径,并且端口将默认为其连接的端口。

查看本文档中的主机端口映射:http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PortMapping.html

ALB 健康检查文档:http://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html

【讨论】:

    【解决方案2】:

    我通过 AWS 支持找到了解决方案。

    所以这里有两个问题:

    1. 要禁用杀死 EC2 实例的运行状况,请转到 Auto Scaling 组并将运行状况检查切换为“EC2”类型

    2. 若要移除端口 80 的健康检查,请转到 Auto Scaling 组,并在“目标组”部分下,移除由 ECS 管理的目标组

    【讨论】:

    • 谢谢老兄,这没有任何意义。你还没有真正解决任何值得解决的问题。刚刚删除了一个监听器。
    猜你喜欢
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多