У меня есть приложение, которое я развертываю на Kubernetes.
Это приложение имеет 4 реплики, и я делаю последовательное обновление при каждом развертывании.
Это приложение имеет плавное завершение работы, которое может занять десятки минут (необходимо дождаться завершения запущенных задач).
Моя проблема в том, что во время обновлений у меня избыточная емкость, поскольку все модули более старой версии застревают в статусе «Завершено», пока создаются все новые модули.
Во время обновлений я использую 8 контейнеров, и этого я стараюсь избегать.
Я попытался установить maxSurge
в 0, но этот параметр не принимает во внимание модули «Завершение», поэтому нагрузка на мои серверы во время развертывания слишком высока.
Я пытаюсь добиться того, чтобы новые модули были созданы только после успешного завершения работы с модулями старой версии, поэтому я всегда не превышаю количество установленных мною реплик.
Интересно, есть ли способ добиться такого поведения.
maxSurge
вы говорите кубернетам, сколько стручков вы позволяете жить примерно желаемому количеству. Вы пробовали установитьmaxUnavailable
на 1? Это количество модулей, которые могут быть недоступны в процессе обновления. - person acid_fuji   schedule 12.05.2020