Обновления Kubernetes для пакета JSR 352 WebSphere Liberty - PullRequest
0 голосов
/ 27 января 2020

У меня есть пакетное задание WebSphere Liberty, работающее в кластере Kubernetes, масштабированное до 10 пакетов. Каждый модуль имеет одинаковую кодовую базу, и у каждого есть несколько пакетных заданий JSR. Я хотел сделать непрерывное обновление и нулевое время простоя.

В соответствии с документами (https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/ и https://cloud.google.com/blog/products/gcp/kubernetes-best-practices-terminating-with-grace), мы можем создать прерыватель остановки до остановки чтобы перехватить SIGTERM и выполнить окончательную очистку перед terminationGracePeriodSeconds, и Kubernetes вынуждает принудительно уничтожить и выйти из контейнера.

Что мне интересно, предположим, что пакетное задание уже запущено, и если я выполняю обновление / повторное развертывание, можно ли дождаться завершения выполняющегося задания или обновить модуль, который не запускает задания?

1 Ответ

1 голос
/ 27 января 2020

Я не знаю способа отложить выключение, пока работа не закончится естественным образом. Обычно люди пытаются остановить запущенные задания, а затем перезапустить их позже. Если вы можете определить, какие задания выполняются на этом сервере, вы можете остановить эти задания и подождать их завершения (путем проверки состояния задания), прежде чем разрешить серверу завершить работу. Если вы аккуратно остановите сервер, то он автоматически попытается остановить задания, но только подождет немного (30 секунд?), Прежде чем просто отключить сервер.

Остановить запущенные задания сложно, потому что они не обязательно останавливаются. Например, если задание выполняет пакетный режим, то будет запущен метод stop () этого пакетного метода, но пакетное приложение может просто игнорировать это и ничего не делать (или может не иметь возможности что-либо остановить, в зависимости от того, что шаг делает).

То, насколько новая работа не может попасть на сервер, зависит от того, как она там работает (есть несколько различных возможностей).

...