У меня есть установка k8s, которая содержит 2 развертывания: клиент и сервер, развернутые из разных образов. Оба развертывания имеют наборы реплик внутри, определены пробники жизнеспособности и готовности. Клиент связывается с сервером через службу k8s.
В настоящее время сценарии развертывания для клиента и сервера разделены (отдельные файлы yaml применяются посредством настройки). Откат работает корректно для обеих частей независимо, но давайте рассмотрим следующий сценарий: 1. развертывание начинается 2. применяются обе конфигурации развертывания 3. мастер k8s начинает заменять модули сервера и клиента 4. серверные модули запускаются правильно, поэтому новый набор реплик имеет все и запуск новых модулей 5. У клиентских модулей есть проблема, поэтому старый набор реплик все еще работает
Во многих случаях это не проблема, поскольку клиент и сервер работают независимо, но бывают ситуации, когда прерывание изменяется на серверный API выпущен, и клиент и сервер должны быть обновлены. В этом случае, если какой-либо из этих двух сбоев, оба должны быть откатаны (не имеет значения, какой из них сбоит - оба должны быть откатлены, чтобы быть в синхронизации c).
Есть ли способ добиться этого в k8s? Я потратил довольно много времени на поиск какого-либо решения, но все, что я нашел до сих пор, описывает развертывание / откат одной вещи за один раз, и это не решает проблему выше.