Синхронизация и откат независимых развертываний в kubernetes - PullRequest
0 голосов
/ 10 марта 2020

У меня есть установка k8s, которая содержит 2 развертывания: клиент и сервер, развернутые из разных образов. Оба развертывания имеют наборы реплик внутри, определены пробники жизнеспособности и готовности. Клиент связывается с сервером через службу k8s.

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

Во многих случаях это не проблема, поскольку клиент и сервер работают независимо, но бывают ситуации, когда прерывание изменяется на серверный API выпущен, и клиент и сервер должны быть обновлены. В этом случае, если какой-либо из этих двух сбоев, оба должны быть откатаны (не имеет значения, какой из них сбоит - оба должны быть откатлены, чтобы быть в синхронизации c).

Есть ли способ добиться этого в k8s? Я потратил довольно много времени на поиск какого-либо решения, но все, что я нашел до сих пор, описывает развертывание / откат одной вещи за один раз, и это не решает проблему выше.

1 Ответ

2 голосов
/ 10 марта 2020

Проблема здесь кроется в сине-зеленых развертываниях. Здесь - хороший пример развертывания Blue / Green с k8s.

Основная идея c состоит в том, что вы развертываете новую версию (развертывание Green), сохраняя предыдущую версию (развертывание Blue) ) и запускать traffi c только до новой версии (развертывание Green), когда все прошло нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...