负载均衡器健康检查与 docker 健康检查?

Load balancer health check vs docker health check?

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

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

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

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

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