
Andor
03.05.2018
19:41:55
ну кажется номад уже проиграл битву куберу
если она даже была

Stanislav
03.05.2018
19:42:07
Я не предлагаю заменять Кубер

Andor
03.05.2018
19:42:10
кубер у нас уже есть, менять его на что-то другое уже никто не будет

Google

Stanislav
03.05.2018
19:42:12
Я предлагаю заменить крон

Andor
03.05.2018
19:42:31
да я уже нашёл в чём была ошибка
я там wed написал в то поле, где должен быть день месяца, а крон зараза прожевал не подавившись, но и задачу не запускал ни разу

Stanislav
03.05.2018
19:43:26
https://www.nomadproject.io/docs/job-specification/periodic.html

Andor
03.05.2018
19:44:13
ради одной кронджобы я лучше крон настрою правильно, чем вносить в систему совершенно новый и незнакомый инструмент

Maksim
03.05.2018
19:44:17
Ты еще Адмирала вспомни)

Andor
03.05.2018
19:44:21
но когда-нибудь я на номад обязательно посмотрю

Banschikov
03.05.2018
19:48:25
@Leorent Спасибо за поучительные ответы)

Dmytro
03.05.2018
21:29:32
покажи в каком конкретном месте у меня извращение?
в том, где crond запускается. Имхо, запускать лучше просто как обычно в фореграунде:
cron -f -L 15а вывод кронджобов редиректить в вывод PID 1:
<cron_expr> <cron_command> | awk '{print \"cron-<cron_name>|\" \$0}' > /proc/1/fd/1 2> /proc/1/fd/2

Andor
03.05.2018
21:31:09
и этот человек говорит, что я занимаюсь извращением? :)
как так вышло что у твоего сообщения таймстамп новее моего?
время уехало?

Anatoly
03.05.2018
21:34:35
https://www.digitalocean.com/products/kubernetes/

Google

Andor
03.05.2018
21:35:30
> Sign up for early access and receive a free Kubernetes cluster through September 2018.

Dmytro
03.05.2018
21:40:36
а через баш запускать - это дело труба, сигналы он не передаст и можо получить неумирающай контейнер
все это конечно решает уже supercronic насколько я понял

Andor
03.05.2018
21:41:42
там же у меня exec вроде был

Dmytro
03.05.2018
21:42:17

Andor
03.05.2018
21:42:43
да и хрен бы с ними
в моём кейсе это пофиг

Dmytro
03.05.2018
21:44:07
ну хзхз, я бы не зарекался
если запущенный кроном процесс завис по какой-то причине (например ждет IO) - получаем неубиваемый контейнер

Andor
03.05.2018
21:45:32
в худшем случае прибью ноду
в амазоне обитаю так что пофигу
а, у меня там exec на tail -f
там в любом случае какой-нибудь хак нужен
либо через fifo и руками его тейлить, либо как ты привёл пример через вывод в 1/stdout

Dmytro
03.05.2018
21:47:15
в случае с supercronic не нужен хак

Andor
03.05.2018
21:47:18
оба варианта по-своему плохие :)
*все три варианта

Dmytro
03.05.2018
21:47:51
(он видимо сам в /1 все редиректит под капотом сам)
хмм а чем плох суперкроник?

Google

Andor
03.05.2018
21:48:17
заведением новой неизвестной сущности
крон стандартен, суперкроник - не очень
ну и его каким-то образом надо сунуть в контейнер, а крон там легко и просто ставится

Dmytro
03.05.2018
21:49:10
ну тогда и кубернетес плох, нестандартный он

Andor
03.05.2018
21:49:17
то есть странности с доставкой бинаря в контейнер будет
ну мне не хочется вносить никому не известную сущность ради такой небольшой задачи
я лучше внесу известную

Dmytro
03.05.2018
21:50:46
ну там у них есть пример как бинарь курлом ложить в контейнер, без него все равно нужен dumb-init или tini которые тоже надо ложить курлом как бинарь

Andor
03.05.2018
21:51:11
эээ, я чота думал что он сам будет pid 1
то есть к нему тоже какие-то хаки надо будет

Dmytro
03.05.2018
21:51:40
кто будет, стандартный cron?

Andor
03.05.2018
21:51:46
мне проще тогда сделать будет while sleep $WEEK; do /run/my/job; done
нет, суперкроник

Dmytro
03.05.2018
21:52:11
суперкроник будет

Andor
03.05.2018
21:52:31
а зачем ему тогда dumb-init?

Dmytro
03.05.2018
21:52:38
а обычный крон тоже будет но не будет форвардить сигналы запущенным процессам как и баш
ему не нужен, нужен обычному крону

Andor
03.05.2018
21:53:06
ну в баше можно это самим скриптом захачить
в некоторых пределах конечно

Dmytro
03.05.2018
21:54:36
можно если такой контейнер с кроном будет один, если их будет много то будет немейнтейнабл спагетти на баше которые надо будет везде распихивать - и тут я бы уже взял готовый бинарь

Google

Andor
03.05.2018
21:57:43

Dmytro
03.05.2018
22:06:53
да вроде он как и dumb-init или tini будет пытаться рипнуть всех чайлдов с помощью sigkill судя по документации (но сам я суперкроник не юзал и поручиться не могу)
They often don't respond gracefully to SIGINT / SIGTERM, and may leave running jobs orphaned when signaled. Again, this makes sense in a server environment where init will handle the orphan jobs and Cron isn't restarted often anyway, but it's inappropriate in a container environment as it'll result in jobs being forcefully terminated (i.e. SIGKILL'ed) when the container exits.

Andor
03.05.2018
22:07:25
так ведь докер сам это будет делать
разве нет?

Dmytro
03.05.2018
22:10:06
только с флагом --init который добавили кажется в 17 версии https://docs.docker.com/engine/reference/run/#specify-an-init-process

Andor
03.05.2018
22:11:31
в смысле? при убийстве контейнера процессы этого контейнера не получат SIGKILL?
ты мне щас шаблон рвёшь

Dmytro
03.05.2018
22:11:48
https://stackoverflow.com/questions/49162358/docker-init-zombies-why-does-it-matter вру, в 1.12 добавили

Andor
03.05.2018
22:12:42
он-то понятно что получит
а остальные - нет?

Dmytro
03.05.2018
22:13:45
насколько я знаю - нет, это отвественность PID 1 процесса а не демона докера

Andor
03.05.2018
22:16:07
лень проверять, но кажется процессы сдохнут
завтра проверю

Dmytro
03.05.2018
22:18:44
https://docs.docker.com/config/containers/multi-service_container/
> The container’s main process is responsible for managing all processes that it starts. In some cases, the main process isn’t well-designed, and doesn’t handle “reaping” (stopping) child processes gracefully when the container exits. If your process falls into this category, you can use the --init option when you run the container. The --init flag inserts a tiny init-process into the container as the main process, and handles reaping of all processes when the container exits.

Andor
03.05.2018
22:22:07
прикольно, что дока не объясняет, чо будет если сигнал не уедет в дочерние процессы
вроде вся статья про то что хороший правильный инит нужен, а чо будет если он будет неправильный - не скзаано

Alisa
03.05.2018
22:45:35
почему ping на внешний ip сервиса доходит, а на внутренний нет?

Andor
03.05.2018
22:46:16
потому что внешний реально слушается на хосте, а внутренний - всего лишь запись в iptables и там вроде бы нет правила для icmp

Alisa
03.05.2018
22:46:47
вот как, а как мне тогда проверить внутренний dns?

Google

Andor
03.05.2018
22:47:05
сделай днс-запрос например?
у тебя свой собственный днс внутри кубера?

Alisa
03.05.2018
22:47:38
судя по доке — встроенный который

Andor
03.05.2018
22:47:57
как тебе пинги помогут проверить днс?

Alisa
03.05.2018
22:48:01
то есть у каждого сервиса получается автоматически имя 'my-svc.my-namespace.svc.cluster.local'
я хз я нуб)0

Andor
03.05.2018
22:48:26
может тебе не пинги надо, а днс-запрос делать?

Alisa
03.05.2018
22:49:01
да я об этом не подумал, сейчас в впны завернусь обратно и попробую, спасибо :))

Andor
03.05.2018
22:57:31
смотря что конкретно ты вообще делаешь
вообще без разницы

Alisa
03.05.2018
23:00:29
я хочу просто понять как-то что стучусь именно на свои локальные сервисы, увидеть хотя бы их адрес локальный или OK, вывод этого не дает

Andor
03.05.2018
23:00:47
ну любой инструмент подойдёт
host/nslookup/dig

Alisa
03.05.2018
23:01:13
https://pastebin.com/2SHdz5Fc
вот этот вывод не меняется даже для несуществующих сервисов

Fike
03.05.2018
23:38:37
ну для несуществующих он и должен быть пустым

Banschikov
04.05.2018
03:11:04
Привет! Кто тестировал вот эту вещь https://openebs.io/ ?
Хочу задать несколько вопросов

Alex Milushev
04.05.2018
03:57:52