AWS NLB到ECS群集的健康检查失败



我已经配置了一个网络负载平衡器将TCP流量路由到端口80

的ECS群集

ECS群集正在运行Fargate配置中的ASP.NET Core 2.2 API任务。API的基本路线是http://ip_address:80/api/v1/

首先,一切都按预期工作,我可以按照负载平衡器的DNS和路由请求到适当的.NET API路线

但是,最终对NLB的健康检查失败,容器被排干,新容器更换了它们。

使用应用程序负载平衡器,我只会配置健康检查以达到API上的/healthcheck路线,一切都很好。

但是,网络平衡器不能以这种方式配置。

我的问题是:在ECS容器上进行健康检查的策略是什么?

好的,所以答案很简单...

您刚刚在/路径上设置了一个资源,以便NLB获得响应

我的ASP.NET核心的具体解决方案:

ASP.NET Core 2.2为此具有内置包装。这只是在Startup.cs类中添加以下内容的问题

将服务添加到服务集合

public void ConfigureServices(IServiceCollection services)
{
    services.AddHealthChecks();
}

配置健康检查

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    // Network Load Balancer hits this path for the health check
    app.UseHealthChecks("/", 80);
    ...
}

最新更新