1.
лучше и проще всего
- дело субъективное. Для меня проще без K8S, но наверняка молодежь скажет что с ним легче.
Скорее всего хватит одного реального сервера под frontend, одного под api и одного под базу данных (по началу вообще всё на одном сервере будет)
Если все-таки хочется кластеризации, то наверно все-таки посмотреть на K8S. Его преимущество в том, что архитектура будет очень похожа и на одном реальном сервере сегодня, и на кластере в будущем. Один раз помучаться и настроить ingres - и потом относительно легко можно мигрировать куда-нибудь.
Если для начала хотим
быстро развернуть все на одном сервере - то конечно без, просто поставить nginx, API engine, Database and Redis.
Кстати, если фронтенд это angular/react и т.п., то проще деплоить их на сервис для статических страниц - S3 и т.д. (если облака рассматриваются).
2. Надо смотреть на конкретный балансировщик и app server.
Общая идея такая:
а) помечаем сервер как неактивный
б) ждем пока закончатся все сессии
в) обновляем
г) возвращаем в балансировщик
е) переходим к следующему серверу