
Magistr
08.07.2016
09:16:39
есть тот же k8s зачем самому его писать и собирать грабли

Alexander
08.07.2016
09:17:00
если кластер - то да, лучше что-то такое ставить
если одиночный сервер - свой костыль будет проще поддерживать

Magistr
08.07.2016
09:17:53
свой костыль всегда сложней поддерживать

Google

Mihail
08.07.2016
09:18:08

R-omk
08.07.2016
09:18:15

Magistr
08.07.2016
09:18:37
ну да чужой сложней а чужой еще и индуский вообще ад
а вообще есть готовые инструменты пользуйтесь

R-omk
08.07.2016
09:19:10

Alexander
08.07.2016
09:19:38
k8s и mesos - это клёвые вещи, я очень за, но если нужно просто (пере)запустить службы на 1 сервере - разве не будет оверхёдом ставить всё это на одиночный сервер?
своё решение, генерирующее .service-файлы напитонить довольно просто

Magistr
08.07.2016
09:20:20
когда у тебя 2 контейнера тогда и любой инит скрипт, а когда уже 3 и больше то надо делать нормально


Alexander
08.07.2016
09:20:22
это будет небольшой скрипт в пределах 100 строк
если у нас одиночный сервер, мы хотим BGD, тогда каким-то образом (например, через консоль или боту в телеграмме или HipChat'е) мы посылаем команду upgrade 1.2.3 (номер версии) скрипту , он делает следующее:
берёт шаблоны Postgres, Nginx, uWSGI для service-файлов контейнеров (допустим, у нас три контейнера - база, основной код и статика/медиа + какой-нибудь прокси, который нужен ичключительно для переключения трафика для BGD), подставляет туда этот номер версии 1.2.3 (допустим, там есть слово VERSION везде в командах и он его заменяет вот этот 1.2.3)
копирует их в /etc/systemd/system/
делает systemctl daemon-reload
делает systemctl enable ... для каждого service-файла
делает systemctl start ...-1.2.3 - это поднимает контейнеры
далее патчит upstream на балансировщике и делает его reload (допустим, там nginx), в итоге трафик перестаёт идти на старые контейнеры, и идёт на новые
останавливаем старые контейнеры, удаляем старые service-файлы
вот и весь скрипт
в а .service-файлах у нас пулл, стоп, рм, старт контейнера (не важно, что там - Rkt/Docker/что-то ещё)
мне кажется, написать этот скрипт проще, чем что-то внедрять
а, да, кроме версии надо передавать ещё идентификатор проекта, если проектов тут на сервере больше 1


Magistr
08.07.2016
09:38:58
ну да написать свой клон ansible проще ))
чем с полпинка 1й командой поставить k8s которые делает это да еще и граничные условия ради тебя учли и соломки подложиди

Google

Alexander
08.07.2016
09:40:31
да всё равно что-то дописывать придется, вот эти системы умеют с hipchat интегрироваться чтобы туда выкладывать отчёты или получать оттуда команды?
просто если задача элементарная - проще самому 100 строчек написать, чем разбираться в чужом коде
в сложных случаях, конечно, стоит ставить те системы

Magistr
08.07.2016
09:41:54
попробуй потом говори что придеться.. интеграции с чатами это вот самое ненужное что есть
для элементарной задачи bgd есть элементарный инструмент k8s и все, если хочешь потратить время разработчика на копирование это работы ну твое желание только пользы это никому непринесет

Alexander
08.07.2016
09:46:29
ну это такой довольно классический спор о том, что проще - конфигурировать что-то или программировать
впрочем, k8s - хорошая система и она мне нравится, когда-нибудь с ней тоже разберусь)
к слову, всё ещё больше упрощается, если BGD не нужен - тогда .service файлы делаются 1 раз и обновление проекта происходит куда проще
а в случае, когда мы хотим не использовать systemd вообще, видимо, придётся или где-то в Evernote'е хранить эти команды со всеми параметрами и копипастить оттуда или делать alias в /root/.bashrc
ну, думаю, вы согласитесь, что если у нас там какой-нибудь сайт-визитка чебуречной - BGD не нужен

Magistr
08.07.2016
11:01:37
Зачем вообще тогда разговаривать о сайтах визитках, там ничего ненужно
А там где появляются задачи для докера уже нужно думать, и делать норм

ptchol
08.07.2016
13:10:47
Слушайте, а можно примаунтить контейнер собранный как вольюм для другого контейнера ?

Алексей
08.07.2016
13:11:56
volumes_from ?

ptchol
08.07.2016
13:12:13
Суть такая, что есть публичный имидж, он довольно толстый и сложный, поэтому тащить на саппорт его не хочется.
Там внутри лежит код на питоне, и этому коду можно через envvar указать нечто вроде "Additional_libraray_path". Так вот, эти либы хочется собирать и таскать в отдельном конейтенере.
Вольюмс фром вроде как примаунтит теже тома, что примаунчены к другому контейнеру, нет ?

Алексей
08.07.2016
13:12:58
нет
оно примаунтит тома того контенера

ptchol
08.07.2016
13:13:50
ну да, но само содержимое контейнера же я не смогу увидеть.

R-omk
08.07.2016
13:14:11
сможешь, для этого и нужен volumes_from

Google

R-omk
08.07.2016
13:14:27
иначе зачем он вообще

Алексей
08.07.2016
13:15:31
volumes_from как раз оно.
ддля реализации концепции data_only контейнер

ptchol
08.07.2016
13:17:41
тоесть смысловая нагрузка опции volumes_from вроде как "том сделанный из имиджа" а не "тома вытащенные из имиджа"ю

Алексей
08.07.2016
13:18:44
как раз тома вытащенные из имиджа
просто в дата контейнере тебе надо объвить директорию с нужными тебе данными как volume
и у тя получается аццкая конструкция которая работает как раз как тебе надо

Alexander
08.07.2016
13:37:01
допустим, условно, есть у вас веб-студия с manаged-shared'ом, надо же как-то от shared'а вперёд двигаться

ptchol
08.07.2016
13:53:13

Алексей
08.07.2016
14:11:23
в Dockerfile сделать директиву VOLUME
и всё

Алексей
08.07.2016
14:11:40
ну и указать на нужную тебе директорию конечно

R-omk
08.07.2016
14:48:18
Вряд ли конечно.. volume именован и привязан к конкретному контейнеру

Алексей
08.07.2016
14:51:36
но кейс интересный
а если там открытые файлы ?
а если на запись ?

R-omk
08.07.2016
14:52:06
Ну я поразмыслил и решил что нет.. темболее открытые файлы

Google

R-omk
08.07.2016
14:52:48
На самом деле довод о том что у волума есть имя и связь абсолютно убедителен

Алексей
08.07.2016
14:52:49
я так себе делал. у меня php-fpm был одним контерфенром а код другим
но монтировал я его на ro
и перезапускал пачкой

R-omk
08.07.2016
14:53:43

Алексей
08.07.2016
14:53:52
ага да

R-omk
08.07.2016
14:54:17
Но я спроектировал с полным перезапуском и переключением через haproxy
Потому как переливать файлы налету вообще не есть правильно
Оно становится недетерминированным при любых настройках, так что лучше явно перебросить запросы с одной версии на другую

Aleksandr
08.07.2016
16:01:55
парни, а кто нибудь использовал это - www.weave.works ??? в связке swarm + compose ?

Admin
ERROR: S client not available

Алексей
08.07.2016
16:06:55

Aleksandr
08.07.2016
16:07:17
где? ткните пальцем
про 21 мегабит

Kirill
08.07.2016
16:07:58

Алексей
08.07.2016
16:08:22

Evgeny
08.07.2016
16:09:22

Aleksandr
08.07.2016
16:11:41
а overlay как на 1 гигабите например, сколько выжать можно будет?

Evgeny
08.07.2016
16:11:48
980

Google

Aleksandr
08.07.2016
16:12:03
откуда такие цифры?

Evgeny
08.07.2016
16:12:10
с моей инсталяции
с двух точнее

Алексей
08.07.2016
16:12:33
докером ?

Evgeny
08.07.2016
16:12:45
overlay - это внутри сети

R-omk
08.07.2016
16:13:25
Да там ходить далеко не надо, там вся сеть на цпу работает

Aleksandr
08.07.2016
16:14:31
получается, самое быстрое и чтобы не ело cpu - это бридж на хост машине ?

Kirill
08.07.2016
16:14:51
логично, как по мне

Evgeny
08.07.2016
16:15:40
--net=host

Kirill
08.07.2016
16:16:37
--net=host
не всегда это стоит делать, насколько я заметил

Evgeny
08.07.2016
16:18:08
Это быстрее всего

Алексей
08.07.2016
16:19:40

Evgeny
08.07.2016
16:19:50
Это докером, да

Алексей
08.07.2016
16:19:53
кто то же должен снять udp
ага

R-omk
08.07.2016
16:20:01

Алексей
08.07.2016
16:20:03
тоесть ядром по факту
либо сетевуха умеет офлоад

Evgeny
08.07.2016
16:20:27

Алексей
08.07.2016
16:20:33
но я таких не видел

Aleksandr
08.07.2016
16:21:16
просто вопрос, разворачивать прод,как там с сетью, на которой нагрузка может быть по 300-500 мегабит. сможем ли такой трафик доставить в контейнеры...