Petr
но скорее всего ты столкнешься наверное с проблемой мульти сетей
Petr
на одном сервере хочешь запускать? Можно порты поменять которые наружу выходят
Anonymous
на одном сервере хочешь запускать? Можно порты поменять которые наружу выходят
Да, именно. Хочу на одном сервере, и не плодить инстансов PgSQL и ES. Что подразумевается под мультисетями? У project1 и всех его сервисов (скажем celery, frontend и так далее) своя подсеть. У project2 ещё одна своя. И у расшаренных сервисов pg и elastic тоже по две свои подсети. Верно понял?
Petr
лучше скинь сразу docker-compose.yml
Petr
docker-compose все что делает это поднимает контейнеры описанные в текущей папке, в текущем файле docker-compose.yml
Anonymous
Petr
перемести в другую папку он создаст еще, с условием если имена контейнеров не будут повторяться
Petr
так ты пробрасываешь порты все наружу, я бы так не делал, но может оно тебе так надо. Поэтому можешь поднять еще такие же контейнеры в другой папке, название папки поменяй, поменяй порты
Petr
а вообще у тебя приложение предусматривает проброс портов базы данных наружу?
Anonymous
так ты пробрасываешь порты все наружу, я бы так не делал, но может оно тебе так надо. Поэтому можешь поднять еще такие же контейнеры в другой папке, название папки поменяй, поменяй порты
Верно, этот конфиг разработчики будут использовать у себя на локальных компьютерах. Будут подсоединяться к сервисам внутри Docker'а (Postman для ES, PyCharm для PgSQL, flower/celery для браузера). Я потом другой конфиг для прода напишу.
Anonymous
перемести в другую папку он создаст еще, с условием если имена контейнеров не будут повторяться
Так. Значит что сделать? 1. Создать два отдельных контейнера pg и elastic, вне моих проектов. Которые я и планирую использовать в project1 и project2. 2. Задать им абсолютные имена через container_name. 3. Уже эти имена использовать в каждом из моих проектов в docker-compose.yml файлах каждого проекта.
Anonymous
Вроде бы так это работает, насколько я понимаю.
Petr
а я туплю, порты тебе менять не надо
Petr
нужны уникальные названия
Petr
да
Anonymous
Да, потому что docker-compose.yml делает нечто вроде name mangling в пределах проекта.
Petr
хотя я уже сам запутался за целый день с этим докером
Anonymous
хотя я уже сам запутался за целый день с этим докером
Ладно, спасибо. :) Основую идею и направление понял. Сейчас буду экспериментировать.
Petr
вообще для dev и прод я бы сделал, может это и не бэст практис, но такой уже у меня стоит. Экспозится nginx 80 порт у веб приложений и api, с расписанными путями и поддоменами, внутри конейнеры общаются по name, объедены все в одну сеть, есть контейнер с openvpn, с портом наружу и заранее вбитыми учетками, его порт тоже экспозится наружу для доступа во внутреннюю сеть этих контейнеров, только общаешься по айпи, можно в хостс конечно прописать наверно имена.
Dmitry
Раньше был extends в docker-compose файлах. https://docs.docker.com/compose/extends/#extending-services Полез за документацией, и увидел что его убрали в 3+ версии. Если у вас что-то ниже, можете попробовать воспользоваться им. Как костыль, предлагают дробить docker-compose.yml на куски и подкидывать их в docker-compose через множественный -f.
Anonymous
В общем сделал я shared PG и shared ES instances.
Anonymous
https://stackoverflow.com/a/24326540/571465 Вот этот пост на stackoverflow помог.
Anonymous
Просто в отдельной директории создал отдельный docker-compose.yml, там поднял нужные общие сервисы. Задал container_name обоим, пробросил порты наружу и подсоединяюсь из моего проекта по IP хост-машины.
Anonymous
В общем идея ясна. Такое достаточно легко делается.
Petr
Порты разные сделал?
Petr
У хост машины как понимаю один ip
Anonymous
У хост машины как понимаю один ip
Угу, он один и хост-машина доступна из любой подсети Docker.
Petr
👍
Anonymous
Порты разные сделал?
Гм, не совсем понял вопроса, но да. И у PG, и у ES сменил порты с дефолтных. Пробросил их наружу в хост-машину.
Petr
А ну вот я о том
Petr
Это первый предложенный вариант
Petr
Кстати а что мешает все в один Докер композ запихать? Чтобы у них не было коллизии между собой?
Anonymous
Ну тоже вариант кстати.
Anonymous
docker-compose.yml в пределах всей VPSки грубо говоря.
Petr
Ну сам решай как удобно
Petr
У меня в основном мини сайтики api. Все через nginx один 80 порт дышит и openvpn
Petr
Мне так удобнее. Только вот разделить по сетям не получается
Oleg
кто-нибудь использует какой-нибудь load-balancer для grpc? dockercloud/haproxy с tcp что-то не завелся для этих целей. Что посоветуете?
Oleg
сорян, протупил. Все пашет
Aleksey
господа поясните за https://docs.docker.com/engine/swarm/configs это ведь статические конфиги. как эти стические конфиги оживить ?
Aleksey
выглядит так будто там нет такой возможности вовсе. пожтмоу кажется что опять на выручку приходит consul-template и конфиги на самом деле будут не для сервиса а для консул темплейта а консул темплейс уже будет фигачить конфиг сервиса
Aleksey
но это как то.... криво ?
Roman
господа поясните за https://docs.docker.com/engine/swarm/configs это ведь статические конфиги. как эти стические конфиги оживить ?
так это и есть статические конфиги. например у тебя есть 2 редиса: один для кешей, второй для инфы. имеджи одинаковые, конфиги - разные
Aleksey
понятно. опять замануха он докера с заглушкой на будущее
Roman
не совсем понятно, чего ты от этого хочешь
Roman
менеджер динамических конфигов? а кто будет принимать решения?
Aleksey
я хочу что бы кто то писал секцию upstream в nginx
Aleksey
грубо
Roman
на основе чего?
Aleksey
на основании запущенных сервисов
Roman
аа понял
Roman
ну да, это не оно. нужен консул
Aleksey
консул есть. :)
Roman
дай апстримам имена
Roman
и используй их
Aleksey
там есть имена конечно. но зхадачу дискавери это не решает. к тому же говорю нжинкс выбран для примера.
Roman
ну я понял, поднял еще один апстрим - хоп и в клнфиг добавилось
Roman
мы это решали проксей
Aleksey
ну ага. или переменную окружения отрендерить в конфиге
Aleksey
такое вот
Roman
ну да, пока нет решения искаропки
Aleksey
ну короче опять консул темплейт :) и envsubst
Aleksey
как же это уже...
Aleksey
2017 год такой
Denis
2017 год такой
у тебя же номад, не ?
Denis
там он умеет конфиг генерить из шаблона, который в свою очередь из консул темплейта собирается самим номадом
Aleksey
у меня проект. народ ставить может проект в чо попало. часть я эксплуатирую. часть нет.
Denis
оукей.
Aleksey
http://www.opennet.ru/opennews/art.shtml?num=47718
Aleksey
больше контейнеров
Terry
больше контейнеров
красивых и разноцветных
Aleksei
http://www.opennet.ru/opennews/art.shtml?num=47718
Офигеть. Виртуализация дорогА, сказали они и сделали изоляцию процессов. А теперь давайте изолировать с помощью виртуализации... круг замкнулся :)
Aleksey
ну они видимшь предлагаю ряд моментов.
Aleksey
ksm очень не хватает докеру
Gleb
ksm очень не хватает докеру
http://www.opennet.ru/opennews/art.shtml?num=47718 получите и распишитесь
Gleb
Для уменьшения потребления памяти применяется механизм DAX (прямой доступ к ФС в обход страничного кэша без применения уровня блочных устройств), а для дедупликации одинаковых областей памяти применяется технология KSM (Kernel Shared Memory), что позволяет организовать совместное использование ресурсов хост-системы и подключить к разным гостевым системам общий шаблон системного окружения.