Я использую около 30 различных сайтов на одном хосте, каждый из которых управляется с помощью docker -compose. Некоторые из них используют Nginx, некоторые используют Apache. Затем есть контейнер обратного прокси, доступный для inte rnet, который работает Nginx, имеет кучу vhosts и перенаправит трафик c в нужный контейнер. Эти 30 разных сайтов - это просто я пробую разные идеи, и у них не так много клиентов.
Я знаю, что использование docker -compose неразумно для производственного использования, потому что отключение и выключение Контейнер снова включается с использованием новой версии по-прежнему занимает время (<3 секунд). Я знаю о docker Swarm и K8S, которые я буду использовать, если какой-либо из этих 30 различных сайтов станет достаточно большим. К этому моменту я, вероятно, реструктурирую все, чтобы добиться развертывания без простоев. Но то, что я спрашиваю, отличается. </p>
Я хочу по-прежнему управлять обычными контейнерами, используя docker compose, потому что это очень удобно и потому, что у меня только 1 узел, поэтому запуск K8S будет излишним и бесполезным на самом деле нет нулевого времени простоя развертывания. Тем не менее, я хочу время от времени заменять контейнер обратного прокси-сервера (может быть 1-3 раза в неделю), и я не хочу иметь простоев с этим единственным контейнером, потому что будут затронуты все эти 30 сайтов. Я могу принять время простоя <3 секунд для отдельных сайтов, потому что большинство сайтов вообще не меняются, а те, которые работают, являются экспериментальными, но я начинаю чувствовать себя некомфортно, имея время простоя <3 секунд для обратного прокси-сервера. </p>
Так есть ли способ заменить контейнер обратного прокси без простоя? Что-то действительно простое и легкое? Не обязательно использовать docker compose, но все равно следует использовать контейнеры в целом. Я рассматриваю следующее:
- Используйте KIND (Kubernetes IN Docker), который работает на одном хосте и создает контейнеры, чтобы они выглядели как узлы. Это занимает 800 МБ-1 ГБ ОЗУ, поэтому нежелательно
- Держать контейнер обратного прокси на неопределенное время, изменять его конфиги, перезапускать Nginx (время простоя <1 секунды), но это серьезно нарушает назначение контейнеров и я не могу больше не заботиться о контейнерах, и это первая причина, по которой я хочу контейнировать приложения. </li>
Есть ли другие варианты?