amazon-web-services - AWS NLB 到 ECS 集群的运行状况检查失败
问题描述
我已经配置了一个网络负载均衡器,通过端口 80 将 TCP 流量路由到 ECS 集群
ECS 集群在 Fargate 配置中运行 ASP.NET Core 2.2 API 任务。API的基本路线是http://ip_address:80/api/v1/
起初,一切都按预期工作,我可以访问负载均衡器的 DNS 并将请求路由到适当的 .NET API 路由
然而,最终 NLB 上的健康检查失败,容器被排空并被新容器替换。
使用 Application Load Balancer,我只需配置运行状况检查以命中/healthcheck
API 上的路由,一切都会好起来的。
但是,不能以这种方式配置网络平衡器。
我的问题是:对 ECS 容器进行健康检查的策略是什么?
解决方案
好的,所以答案很简单......
您只需在路径上设置一个资源,/
以便 NLB 得到响应
我对 asp.net core 的具体解决方案:
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);
...
}
推荐阅读
- javascript - javascript中的计时器以及document.getElementById出现问题
- amazon-web-services - 列出所有表中包含电子邮件地址的所有列
- conditional-statements - 基于模板文件的 Shopify 代码段的条件格式
- excel - 使用 vba 在 Outlook 电子邮件中添加 Excel 工作表作为附件
- java - 字符数组的数组排序不当行为
- ios - 切换属性不会实时显示更改
- mysql - Mysql索引优化使用范围之间的位置
- wordpress - 如何在 Woocommerce 中更新 billing_email(如果为空)
- c# - 我们可以在使用 Unity 事件调用的函数中添加 for 循环吗
- python - 如何在 Windows Batch/Python 文件中获取当前目录的路径?