Как поделиться версионными данными внутри модуля

В настоящее время мы обслуживаем около 140 веб-приложений, созданных различными веб-агентствами. Установка представляет собой обычный стек LEMP.

Кластер 1.2 k8s был установлен для их миграции как микросервисов. Проблема, с которой мы сталкиваемся, связана с обслуживанием статического и динамического контента. Для этого мы используем, конечно, два разных контейнера (nginx и php-fpm), но не можем найти адекватного решения для обмена данными на обоих.

Мы надеялись, что сможем использовать версионные контейнеры данных, но это явно не в рамках k8s. Очень жаль.

gitRepo не подходит, поскольку мы не хотим зависеть от работающей инфраструктуры git для модулей экземпляров. Если это не сработает, мы хотим быть автономными и иметь возможность обслуживать трафик.

Другие опции (флокер и т. д.) выглядят громоздкими и сложными по сравнению с простым контейнером данных. Мы также хотели бы быть независимыми от хранения данных.

Есть вариант, о котором я не знаю? У кого-нибудь есть совет по этому поводу? Позвольте мне подчеркнуть, что мы хотим иметь возможность версионировать вещи, чтобы легко выполнять накат вперед/назад.

Спасибо за ваше время


person dynek    schedule 14.10.2016    source источник
comment
Я не знаю, поможет ли это, но git не требует инфраструктуры. Работает исключительно локально. Хотя у него есть возможность синхронизировать изменения в/из удаленного местоположения, это не обязательно для базового отслеживания версий.   -  person larsks    schedule 14.10.2016
comment
ИМХО git в контейнере не очень хорошая концепция. Почему вы не создаете образ Docker, а затем используете идентификатор git commit, используемый в образе, в качестве тега образа Docker? Это более удобное решение для k8s.   -  person Jan Garaj    schedule 14.10.2016
comment
@janGaraj, это хорошая идея, но если я правильно понял, это будет означать, что нам нужно иметь код в двух контейнерах в одном модуле, один раз в nginx и один раз в php-fpm, вы это имеете в виду? Неужели нет возможности обмениваться данными между контейнерами в общем поде?   -  person dynek    schedule 15.10.2016
comment
@dynek В мире докеров это просто --volume-from. В мире Kubernetes все сложнее — см. > stackoverflow.com/questions/30538210/   -  person Jan Garaj    schedule 15.10.2016
comment
Я видел это, прежде чем опубликовать свой вопрос. Я думал, что это могло измениться с 1 года. Копирование файлов из контейнера данных в EmptyDir выглядит как решение. Однако он выглядит тяжелым. Обычно это делается один раз для каждой группы, и обычно веб-сайты не должны быть слишком большими.   -  person dynek    schedule 16.10.2016