SqIdWaRd
@SqIdWaRd
Наверное начинающий системный админ.)

Как организовать инфраструктуру в помощью Docker?

Здравствуйте! Хочу разобраться с докером, а именно как построить свою структуру с возможностью scalability.
Прикрепил схемку как это вижу, но остался вопрос с файлами, как правильно они должны реплицироваться между nginx контейнерами. Должны ли они браться с хост машини, или лучше сделать образ с файлами внутри. Либо создается еще 1 контейнер с которого можно монтировать папку на оба контейнера.
И небольшой вопрос не по теме, что такое CoreOS или MesOS и зачем оно? Спасибо!
28b944a9258a43b698d43c96f5fb5b14.png
  • Вопрос задан
  • 4119 просмотров
Решения вопроса 1
ctrlok
@ctrlok
Platform Engineer\devops на вынос, консультант
Вопрос задан немного странно и допускает неоднозначное трактование, поэтому попробую ответить сразу на все.

Начнём с php-fpm - это процес, который получает запрос, ищет нужные файлы, интерпритирует их и отдаёт какой-то результат наружу (через unix socket или по tcp).
8dfac029a2f34194b22bfe0fba2e5c5e.png
Соответственно, если мы хотим получить контейнер с каким-то сайтом на php-fpm то мы можем либо сразу запаковывать файл вместе с интерпритатором или использовать дополнительный контейнер.
Запаковывать код вместе с интерпритатором достаточно удобно, так как мы получаем только один образ и в догонку связываем версию интерпритатора и вообще всё окружение с версией кода.
3eeba5e5bace45f6a64f8cd20c244bf2.png

Допустим у нас кроме динамики на сайте есть ещё и какая-то статика (для простоты мы положим её в тоже репо что и код), соответственно нам нужен какой-то nginx перед php-fpm чтобы нормально эту статику отдавать.
Тут нам на помощь приходят docker volumes.

В контейнере с файлами мы определяем каталоги с файлами, которые экспортим как волюмы, а при запуске контейнера с nginx уже делаем --volumes-from и указываем имя контейнера с файлами.
08736c0db7ff494295bff8c1cfc1a2f7.png

Соответственно итоговая схема php-fpm + nginx будет выглядеть так: контейнер с php-fpm экспозит наружу порт 8081, и волюм /var/www/site/static, а контейнер с nginx уже линкуется сетью на контейнер с php-fpm и делает VOLUMES_FROM

661e4342b8b94fcbb24c53b71602b306.png

Остальная часть вопроса касается в большей степени сервис дискавери и в намного меньшей степени докера. Но из того что знаю могу посоветовать посмотреть на counsul, etcd, zookeeper, а для наполнения конфига nginx апстримами - registrator или consul-template. В принципе там сама схема особо отличатся не будет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
@Aleksey3a
CoreOS — это операционная система на базе Linux для построения легко и гибко масштабируемых кластеров. CoreOS — минималистичный дистрибутив. Установочный ISO образ объемом всего в 136Мб, а в памяти на конечной машине после установки и запуска она займет всего 114Мб. CoreOS основан на ChromeOS, который в свою очередь базируется на Gentoo.
https://habrahabr.ru/post/244585/
Ответ написан
SqIdWaRd
@SqIdWaRd Автор вопроса
Наверное начинающий системный админ.)
Немного поискав нашел всего одно решение которое считаю наиболее адекватным. Первый контейнер берет файлы с хост машины, второй же подключает файлы смонтированные в первую, я так понимаю по сути читает файлы с хоста. Но увы это все в пределах одного хоста(если это не кластер).
Второй в принципе самый стандартный rsync или же немного круче btsync.
Ответ написан
@scmrus
php, git, docker, consul
Если хочется красиво, то мне лично нравится схема через consul.
Вот тут на видео она хорошо описана: https://www.joyent.com/blog/dynamic-nginx-upstream...
Технологии чуть другие, но суть не меняется.
Ответ написан
@KkJ
Kubernetes, Swarm, Nomad, Cocaine.
Ответ написан
@sevmax
Denis Goltsev
Мы сейчас пробуем решение на mesos + marathon. Решение отличается от привычного подхода, так как оно само разбрасывает контейнеры по кластеру и определяет где и что будет работать.
Ответ написан
@spotifi
Rancher (не путать с Rancher OS), Apache Mesos+фреймворк, Yandex Cocaine, Kubernetes, Helios.....
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы