Как обрабатывать развертывание длинных TCP-сессий в ZDD?
У меня есть приложение, которое пересылает TCP-соединение на другое приложение. В настоящее время я пытаюсь сделать это приложение Zero Download Deployment, чтобы я мог развернуть новую версию в любое время, но есть проблема, я не нашел решения, как ее решить.
Я не могу убить сеансы TCP, некоторые из них могут занять минимум 5 минут или 2 часа. Я хотел бы знать, каков общий способ решения этой проблемы: при развертывании новой версии моего программного обеспечения оно будет использоваться новыми подключениями без прерывания предыдущих.
Я знаю, что с помощью docker вы можете изменять сигналы, которые получает контейнер, и обрабатывать их, но все же я вижу, что после развертывания через некоторое время они посылают команду "docker rm" для удаления контейнера (в настоящее время я тестирую с Docker Swarm и предполагаю, что Кубернетес будет делать то же самое).
Это способ получить очень длительное время для развертывания или использовать сине-зеленый цвет?
Спасибо,
1 ответ
Прокатные обновления. Разверните новую версию вещи. Слейте остановку старых.
Реализация может включать в себя изящные сценарии остановки или установку тайм-аутов дольше, чем ваш самый длинный сеанс. В Kubernetes попробуйте TerminationGracePeriodSeconds и обязательно обработайте SIGTERM.