Необходимо обновить таблицу управления без удаления уже запущенных модулей - PullRequest
0 голосов
/ 29 марта 2019

У меня есть несколько работников из сельдерея, которые работают в миникубе, и они работают над задачами, переданными с помощью rabbitMQ. Недавно я обновил код для работников сельдерея и изменил имидж. Когда я делаю helm upgrade release_name chart_path, все существующие рабочие модули закрываются, а все незавершенные задачи отменяются. Мне было интересно, есть ли способ обновить таблицу руля без остановки старых модулей?

  1. Я знаю, что helm install -n new_release_name chart_path даст мне новый набор работников сельдерея; однако из-за некоторых ограничений мне не разрешено развертывать модули в новой версии.
  2. Я попытался запустить helm upgrade release_name chart_path --set deployment.name=worker2, потому что думал, что новое имя развертывания остановит helm от удаления старых модулей, но это тоже не сработает.

1 Ответ

1 голос
/ 30 марта 2019

Так работает Kubernetes Deployments. Что вам нужно сделать, так это исправить свой рабочий образ Celery таким образом, чтобы он ждал, чтобы попытаться выполнить все задачи, ожидающие выполнения, прежде чем он фактически завершит работу. Это, вероятно, уже должно быть, если вы не сделали что-то напуганное, чтобы SIGTERM не добрался до сельдерея? Подробнее см. https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods.

...