【问题标题】:Load balancer health check vs docker health check?负载均衡器健康检查与 docker 健康检查?
【发布时间】:2021-04-20 01:17:16
【问题描述】:

我有一个 ECS 集群,其中包含多个节点(任务定义),前面有一个应用程序负载均衡器。在负载均衡器和容器级别(在任务定义中)配置健康检查是否有意义?

负载均衡器针对every registered target 运行配置的运行状况检查,因此它可以取消注册失败的节点。在容器级别设置健康检查可以完成同样的事情:ECS 将注销任何未通过健康检查的容器(根据您的配置)。 ECS 将始终实例化更多的任务 def 实例以满足您所需的数量。

在我看来,如果您的任务定义只有一个容器,那么只需在负载均衡器上设置运行状况检查(因为它是必需的)就足够了。我错过了什么吗?

【问题讨论】:

    标签: amazon-web-services docker amazon-ecs health-monitoring aws-application-load-balancer


    【解决方案1】:

    在负载均衡器和 ECS 的情况下,取消注册意味着不同的事情。如果负载均衡器注销意味着没有进一步的流量发送到容器。对于 ECS 服务,unrigestering 意味着容器被杀死,ECS 服务将尝试用健康的容器替换它。

    即使您只有一个容器,如果发生故障,负载均衡器也会停止向其发送流量,但重新启动容器并不是负载均衡器的工作。将容器替换为健康的容器应该由 ECS 服务调度程序完成。

    【讨论】:

    • 那么,如果我在 docker 级别配置了 healthcheck,那么在应用程序负载均衡器级别也配置 healthcheck 是否有意义?
    • @SlavaFominII 你是说这种HEALTHCHECK吗?
    • 欧文,没错。
    • @SlavaFominII 为 ALB 创建目标组时,只要目标不是 Lambda 函数,就需要设置运行状况检查。无论如何,您必须在 ALB 上对其进行配置。
    猜你喜欢
    • 2020-01-12
    • 2021-08-14
    • 1970-01-01
    • 2013-04-11
    • 2016-08-05
    • 2019-08-27
    • 2015-08-04
    • 2017-08-30
    • 1970-01-01
    相关资源
    最近更新 更多