Dmytro
затем что у нас есть логическое приложение у которого есть статика?
Leo
так может не через fpm? //s3 какое нибудь?
Dmytro
хорошо бы но не всегда возможно
Dmytro
а в чем профит от двух контейнеров в поде вместо одного? скейлить раздельно их нельзя, в случае ООМ одного рестартанется весь под
Dmytro
и т.д.
Dmytro
а гемора с настройкой нжинкс и пхп фпм больше
Leo
Leo
статика в контейнер как прилетает?
Dmytro
два пода? в моем случае будет 1 под с 1 контейнером
A
>>в случае ООМ одного рестартанется весь под
почему?
Dmytro
статика в образ попадает во время его сборки на CI
Sash
Сергей
Нет такого нигде
процесс не сам по себе один процесс, я имею в виду, что одно приложение 1 nginx, 1 fpm, 1 apache
Сергей
nginx + fpm это уже не контейнер, это два контейнера
Сергей
Etki
Leo
Leo
Пару раз были специфичные кейсы которые не везде проявляются
A
Нет такого нигде
на docs.docker.com есть, в Best practices for writing Dockerfiles
Each container should have only one concern.
Limiting each container to one process is a good rule of thumb, but it is not a hard and fast rule.
Dmytro
>>в случае ООМ одного рестартанется весь под
почему?
в этом конкретном случае если к пхп-фпм контейнеру придет оом то нжинкс readiness probe зафейлится и его тоже кубелет рестартанет. Конечно можно сделать readiness probe у нжинкса чтобы он не ходил в пхп-фпм но это же будет очень плохо
Dmytro
Dmytro
как-то так
Dmytro
т.е. если у меня пхп веб приложение (например блог) то статика вполне себе логическая часть приложения блога, и поэтому мне проще засунуть нжинкс в контейнер к пхп-фпм чтобы эту статику можно было отдавать. Да, можно сделать 2 контейнера в одном поде но все равно нужно еще будет засунуть процесс ньюрелик демона в контейнер к пхп-фпм и там один фиг будет не один процесс
A
ну да
в случае php/nginx можно сказать, что это one concern, если так хочется
на архитектурный фейл не тянет в случае 1 контейнера
Dmytro
🤝
Sash
Sash
A
да меня удивило “нет такого нигде”
A
где-то всё же есть, например, в лучших практиках
Sash
Sash
Нет жёсткого правила или то что несколько процессов это плохо
Sash
Если интересно как нибудь возьмите контейнеры того же гугла которые крутятся у них в кубике и посмотрите что там есть
Dmytro
хорошо быть богатым и здоровым
Dmytro
конечно же у гугла написанные под контейнеры приложения бегут по одному в контейнере
Dmytro
а мы тут про реальный мир
Sash
Нет не по одному
Sash
И это реальный мир
Sash
Просто надо понимать что к чему и правильно его готовить
Sash
Не умеешь не понимаешь делай как говорят
Sash
Но гуд руле не означает что всё остальное вери бэд
Sash
Мир ни чёрный и не белый это если грубо
Sash
Имхо
A
у меня нет php-fpm сейчас, но если бы был, я бы хотел метрики и логи с двух контейнеров, а не с одного с supervisord или чем там
Sash
Ты прав
Сергей
Какой прок с контейнеров в таком случае, если запихивать все в один?
Sash
Но у гугла используется супервизор как и у многих других
Sash
Сергей иногда проще засунуть в один как в твоём случае что бы запустить проверить гипотизу и потом разнести по фенхую потому что сразу всё красиво не всегда получается но время убить можно много а итеративно задачу проще порешать
Сергей
Слишком много терминов насыпал. Часть это считай плагины к сервису, часть это обязанность докерфайла, а часть должна быть прибита снаружи
Dmytro
Сергей
Sash
Ты не сделаешь всё сразу хорошо
Sash
Что бы понять рекурсию надо понять рекурсию
A
Etki
потому что не шмогли в треды 😏😏😏
Vadim
боюсь что изменяет
Есть примета - несколько процессов в контейнере - к зомбиапокалипсису
Dmytro
Sash
Супервизор их прибивает обычно это его задача
Vadim
Sash
Мы собираем по всем процессам которым нужно в контейнере и нет проблем
Сергей
Сергей
Сервисов*
Sash
Метрики слать каждые 15-30 сек из контенейра или выгребать прометеем кому как удобней
Vadim
Sash
Представь у тебя ещё нет кубернетеса но очень туда охото заехать как есть
Etki
ОхотА. Простите за педантичность.
Vadim
Докеркомпоуз умер, но оставил привычки?
Sash
Ранчер 😅
Sash
Сервисов оч много просто взмахом одной руки оно не превращается в кубернетес
Vadim
Dmitry
1 nginx + 2 fpm, если у вас неизлечимая проблема с текущей памятью, в итоге OOM не будет приводить к падению сервиса