. NET Core - Правильная остановка пустельги - PullRequest
0 голосов
/ 03 марта 2020

Сообщество, я хочу осторожно остановить Kestrel и его работу. Net Базовое приложение, чтобы оно выполняло существующие запросы, не позволяло ему обрабатывать новые запросы, а когда все существующие запросы выполнены - остановите приложение и Kestrel.

Мне нужно настроить CI / CD в Kubernetes, где у меня есть балансировочные маршруты в Kestrel без nginx, чтобы добиться нулевого времени простоя при развертывании новой версии приложения.

Отлично было бы неплохо иметь что-то подобное на `nginx -s выйти

Кто-нибудь может предложить решение или поделиться знаниями, как организовать нулевое время простоя с помощью dotnetcore в Кубернетесе?

Я пытался найти решения в Google - не получилось для меня. Убить процесс не вариант.

Спасибо

1 Ответ

0 голосов
/ 03 марта 2020

Решение 1:

Вы можете использовать nginx в качестве прокси-сервера revrese. Это рекомендуемая стратегия для. NET Базового хостинга. https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1

nginx as reverse proxy

Решение 2:

Isn ' не правильно. Оставьте это здесь для других, чтобы не go этот маршрут. Прочитайте комментарий Дэвида ниже.

Вам придется попробовать это самостоятельно. и это очень рискованно. Вы можете заблокировать себя.

.UseKestrel (options => {options.Limits.MaxConcurrentConnections = 0;})

Если вы можете настроить KestrelServerLimits MaxConcurrentConnections на 0, вы должны быть в состоянии остановить все трафики c. Я не знаю, как вы можете настроить эти ограничения во время выполнения. Но будет забавно увидеть реализацию этого.

...