@ru_docker

Страница 609 из 610
George
29.07.2019
09:09:59
Maksim
29.07.2019
09:10:40
задачи нет, суть в том что у меня мой docker-compose стоит из двух контейнеров как сервисы я их назвал frontend backend и даже когда я их стопаю docker stop CONTAINER_ID они стопаются очень долго

George
29.07.2019
09:11:02
https://blog.container-solutions.com/running-docker-containers-with-systemd

This setup works pretty well most of the time. But there is a major problem. systemd isn't monitoring the container itself, it's really monitoring the client. If the client detaches from the container for whatever reason (e.g. a network problem), systemd will kill the container, even though it may be functioning fine. Conversely, if the container dies but the client remains running, systemd won't do anything. What we really want is for systemd to monitor the container instead of the client1. And there is a solution that does just that, systemd-docker.

Google
George
29.07.2019
09:11:13
О_о. Я примерно про это и говорю

а потом через 10 секунд приходит докер и насильно его убивает

читай про сигналы

Maksim
29.07.2019
09:12:19
долгий стоп может быть от того что ты криво написал контейнеры и они не отрабатывают сигналы
стандартный php-fpm, взят с docker-hub, по сути только добавил модули для php и положил код во внуть контейнера

Алексей
29.07.2019
09:12:37
ну или если тебе надо быстро стопаться используй docker kill

но повторюсь есть ощущение что ты не уловил суть пока.

и получил забавную зверушку

Maksim
29.07.2019
09:13:24
да вот docker kill отрабатывает не быстрее

Алексей
29.07.2019
09:13:45
откуда требования по скорости docker kill ?

Maksim
29.07.2019
09:14:57
kill -9 должен отрабатывать быстрее чем рестарт сервиса, если конечно docker kill делает подобное

Google
Алексей
29.07.2019
09:15:56
он делает нечто похожее. но ладно я понял. расскажешь чем кончилось и каковы бенчмарки по убийству контейнеров

Maksim
29.07.2019
09:17:23
да мне бенчмарки тут не важны, если я буду уверен контейнеры перезапустят и всё поедет, то проблем нет, у меня отваливается по TIMEOUT

можно увеличить

но как то очень долго всё это

Алексей
29.07.2019
09:17:58
? рад что работает всё.

Andrey
29.07.2019
09:18:50
может для начала посмотреть откуда таймаут, по идеи то его там как бы не очень должно быть

Maksim
29.07.2019
09:19:38
посмотрю на свой entrypoint, может он и в правду кривоват

ну вот не самый страшный entrypoint #!/bin/sh if [ -z $TEMPLATE_DIR ] then TEMPLATE_DIR="/var/www/html" fi for inputfile in $(find $TEMPLATE_DIR -type f -iname "*.tpl"); do outputfile=$(echo $inputfile | sed s/\.tpl//g) envsubst < $inputfile > $outputfile done cat << EOF > /usr/local/etc/php-fpm.d/www.conf [www] listen = 127.0.0.1:9000 user = www-data group = www-data pm = static pm.max_children = $MAX_CHILDREN pm.start_servers = $START_SERVERS pm.min_spare_servers = $MIN_SPARE_SERVERS pm.max_spare_servers = $MAX_SPARE_SERVERS pm.max_requests = 5000 request_terminate_timeout = 60 slowlog = /var/log/php-fpm/slow.log php_flag[display_errors] = off php_admin_flag[log_errors] = on php_admin_value[upload_tmp_dir] = /var/tmp EOF php-fpm здесь я генерю из env конфиги

George
29.07.2019
09:24:41
Я думаю, что сигнал может не в тот процесс уходить

Есть как бы разница между тем же nginx, который сам все хендлит и sh скриптом

Но это требует бенчмаркинга и тестирования

Maksim
29.07.2019
09:25:16
ну вроде бы да, но контейнер не всегда долго рестартует

`` # time systemctl restart docker-movies real 0m10.960s user 0m0.003s sys 0m0.009s ```

проблема в том что контейнер c php-fpm рестартует дольше всех

Алексей
29.07.2019
09:26:38
ты должидаешься штатного таймаута докера после sighup

Maksim
29.07.2019
09:29:50
ладно, буду траблшутить почему долго рестартует php-fpm

Алексей
29.07.2019
09:30:42
потому что вам нужен какой то супервизор для php-fpm

https://github.com/krallin/tini

например

там же описана проблематика.

Google
George
29.07.2019
09:38:21
ну вроде бы да, но контейнер не всегда долго рестартует
Если ты думаешь, что образы с докер хаба без ошибок и багов, то ты глубоко ошибаешься

Maksim
29.07.2019
09:40:18
Надо подумать. Хотя смотрел dockerfile и не нашёл ничего критичного

Алексей
29.07.2019
09:40:36
а вы и не должны найти ничего критичного

Алексей
29.07.2019
09:40:49
проблема специфична для контенеров

Maksim
29.07.2019
10:23:20
ну а как docker живет в проде если есть такие проблемы ?

George
29.07.2019
10:24:40
Есть, но их как бы не замечают, т.к. никто в кубере не гоняет по одной реплике сервиса

А когда их >10 - твои проблемы - вовсе не проблемы

Maksim
29.07.2019
10:25:26
берем количеством, а не качеством

George
29.07.2019
10:25:41
К сожалению

Maksim
29.07.2019
10:27:09
видимо придется делать несколько копий и через upstream балансировать между ними

George
29.07.2019
10:27:49
Вариант, ога

Maksim
29.07.2019
10:28:00
Но такой себе

George
29.07.2019
10:28:40
У тебя при количество реплик=1 все равно нет отказоустойчивости

Sabo
29.07.2019
10:36:59
как вытащить папку (где будут хранится созданные файлы) вне докера

docker-options ?

Ruslan
29.07.2019
12:11:03
Использую связку docker + nginx + gunicorn + flask. У сервера OAuth код авторизации даётся на 30 секунд, а у меня воркер gunicorn умирает по таймауту больше 30. Получается, что я не успеваю дождать ответа, как код авторизации стухает... Что может быть причиной такого? Без доцкера скрипт работает отлично

George
29.07.2019
12:33:47
копай логи

Google
Ruslan
29.07.2019
12:35:02
копай логи
Логи не контейнеров?

George
29.07.2019
12:36:28
Логи не контейнеров?
логи своих сервисов

а уж отображаются ли они в логи контейнеров - это от тебя зависит

Ruslan
29.07.2019
12:39:08
Так вот там-то всё чистенько... Либо где-то мимо меня они ещё собираются, не понимаю

George
29.07.2019
12:39:30
по умолчанию фласк в гюникорн не серит логами

https://medium.com/@trstringer/logging-flask-and-gunicorn-the-manageable-way-2e6f0b8beb2f

смотри

я уж не говорю, что раз у тебя все в одном контейнере, то там у тебя еще и сюпервизорд явно

который тоже ухудшает ситуацию с логами

Ruslan
29.07.2019
12:40:59
У меня два контейнера: под nginx и под flask с gunicorn

George
29.07.2019
12:41:59
У меня два контейнера: под nginx и под flask с gunicorn
а, ну, сорри, значит показалось

Maksim
29.07.2019
14:51:19
Подскажите, имеет ли использовать docker swarm на единственной машине, с одной стороны я могу иметь несколько реплик моего контейнера, с другой легко управлять перезапуском сервисов

Maksim
29.07.2019
14:53:07
Может я чего-то пропустил, реплики можно только со свормом

George
29.07.2019
14:53:39
Нет

Ты скалировать сервисы можешь и без сворма

Maksim
29.07.2019
14:54:47
хм, сейчас посмотрю

У нас есть baremetal сервера расположенные по европе Я так понимаю оркестрация docker-compose + ansible не является "серебрянной пулей". А что тогда ?

Google
Maksim
29.07.2019
15:13:30
swarm не стабилен, k8s избыточен в данном кейсе

я правильно понял ?

Max
29.07.2019
15:14:24
почему не стабилен?)

Maksim
29.07.2019
15:14:47
ну многие на него плюются

Max
29.07.2019
15:15:03
на кубернетис еще больше людей плюются)

Maksim
29.07.2019
15:16:02
я так понимаю что swarm single node избавить меня от гемора в виде systemd над docker-compose ?

Max
29.07.2019
15:16:23
да

Maksim
29.07.2019
15:18:35
будут все теже docker-compose но при этом нормальный оркестратор над ними ?

Gleb
29.07.2019
15:19:58
только слово "нормальный" убрать

Max
29.07.2019
15:20:10
композ немного будет отличаться

Maksim
29.07.2019
15:30:46
только слово "нормальный" убрать
А если по сравнению с systemd?

Gleb
29.07.2019
15:31:33
лично я верю в systemd больше. Я правда не совсем понимаю зачем вообще системд надо. ну сделай ты полиски для контейнера правильный и все

Алексей
29.07.2019
16:09:50
Gleb
29.07.2019
18:20:45
точно

George
29.07.2019
18:24:48
?

Kamal
30.07.2019
09:36:13
установил себе Gitlab у меня теперь сервер нагружается чем до 70% установил я по пакеуту из сайта гитлаб gitlab.com теперь и сайты открывается медленее

до 127% поднимается сука

cpu

Andrey
30.07.2019
09:37:39
ну так поддай ресурсов

Страница 609 из 610