Ошибка проверки работоспособности кластера ECS от NLB до кластера ECS - PullRequest
0 голосов
/ 22 мая 2019

Я настроил балансировщик сетевой нагрузки для маршрутизации трафика TCP в кластер ECS через порт 80

В кластере ECS выполняется задача API ASP.NET Core 2.2 API в конфигурации Fargate.Базовый маршрут для API: http://ip_address:80/api/v1/

Сначала все работает как положено, я могу нажать DNS балансировщика нагрузки и направить запросы на соответствующий маршрут .NET API

Однако, в конце концовпроверка работоспособности на NLB завершается неудачно, контейнеры опорожняются, и новый контейнер заменяет их.

С помощью Application Load Balancer я просто настроил бы проверку работоспособности для достижения маршрута /healthcheck в API, и все было бынормально.

Однако сетевой балансировщик не может быть настроен таким образом.

Мой вопрос: какова стратегия для проверки работоспособности контейнера ECS?

1 Ответ

0 голосов
/ 23 мая 2019

ОК, поэтому ответ был довольно прост ...

Вы просто настроили ресурс на пути /, чтобы NLB получил ответ

Мое конкретное решение для ядра asp.net:

ASP.NET Core 2.2 имеет встроенный пакет для этого. Было просто добавить следующее в Startup.cs class

Добавить службу в коллекцию услуг

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);
    ...
}
...