我已经配置了网络负载平衡器,以通过端口80将TCP流量路由到ECS群集
ECS集群正在Fargate配置中运行ASP.NET Core 2.2 API任务。 API的基本路由为http://ip_address:80/api/v1/
首先,一切正常,我可以访问负载平衡器的DNS并将请求路由到适当的.NET API路由
但是,最终在NLB上进行运行状况检查失败,将容器排空并更换新容器。
使用应用程序负载平衡器,我只需配置运行状况检查以击中API上的/healthcheck
路由,一切都会好起来的。
但是,不能以这种方式配置Network Balancer。
我的问题是:对ECS容器进行健康检查的策略是什么?
答案 0 :(得分:0)
好的,所以答案很简单...
您只需在/
路径上设置资源,以便NLB得到响应
我对asp.net核心的具体解决方案:
ASP.NET Core 2.2为此具有一个built in package。只需在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);
...
}