Andrey
может ты и прав) над еще раз подумать. Ибо я ушел от одного контенера на веб сервер и на кронджобы. Может и зря)
Я просто ща мучаюсь с подобной проблемой. У меня проект как в турции "олинклюзив". Нужен и fpm и статика есть и cli. Я в итоге собрал образ с nginx + php-fpm. Просто буду везде поднимать с нужной командой чтобы не собирать 3 образа с одними и теми же исходниками.
Vitalii
а свою проблему я решил) сейчас правда думаю что наворотил решение там, где ниче не надо было решать)) а юзать фпм для сли и сервера. Надо подумать.
Andrey
в одном образе nginx+fpm это точно очень плохо) разделяй и через сокет соединяй.
так оно у меня будет 1м подом в кубере. Там проще портами.
Vitalii
так оно у меня будет 1м подом в кубере. Там проще портами.
если два контейнера отдельно то норм. Соединяй лучше через сокет и пробрось между контейнерами в поде папку) Так надежнее чем сетку нагружать.
Andrey
Ещё как будет, со свистом
Спасибо! Будем пробовать
Vitalii
так оно у меня будет 1м подом в кубере. Там проще портами.
https://stackoverflow.com/questions/40758576/how-to-run-php-in-kubernetes-via-unix-socket вот)
Andrey
если два контейнера отдельно то норм. Соединяй лучше через сокет и пробрось между контейнерами в поде папку) Так надежнее чем сетку нагружать.
у меня один образ получается, но в поде запускатся 2 контейнера на основе него. Первый с php-fpm, второй с nginx для отдачи статики. (статика валяется внутри проекта с php кодом, не в перемешку, но просто так ее не отделить). Ну и попутно для cron'ов тоже этот же образ будет.
Andrey
https://stackoverflow.com/questions/40758576/how-to-run-php-in-kubernetes-via-unix-socket вот)
О, над будет попробовать сокеты. А то я на порты пока настроился
Andrey
еще раз) ты себе в ногу выстреллил засунут в один контейнер две либы. Пусть даже запускаешь поотдельности. Это костыль) Но дело твое конечно.
Так у меня из вариантов было. Либо так, либо собирать 2 образа с одними и теми же исходниками. Зачем?
Vitalii
собирать надо два контейнера в каждый класть только то, что ему нужно. Только статику в нджинкс, весь код в пхп.
Vitalii
дело в том, что в нджинксе не надо все исходники проекта как правило 🙂 только index.php, css, images, favicon.ico
Andrey
собирать надо два контейнера в каждый класть только то, что ему нужно. Только статику в нджинкс, весь код в пхп.
Так вот я и говорю, нельзя просто взять статику и отделить от php. Оно там в процессе сборки оптимизируется и собирается. После этого вытаскивать ее, ну хз, такое себе удовольствие. А от того что у меня с пыхой рядом лежат либы nginx никто не умер
Andrey
Ещё как будет, со свистом
А если будут 2 одинаковых пути? (чисто из интереса спрашиваю)
Andrey
А, стоп. Оно должно это схавать, для этого ведь и нужен canary-ingress
inqfen
Но в 1 поде
Vitalii
Так у него же 2 контейнера?
один контейнер с двумя либами. Он параметрами контейнеру говорит какую либу сейчас запускать.
inqfen
А, тогда криво. Проще сделать 2 контейнера и в контейнер с nginx волюм от php подкидывать
inqfen
И держать их в 1 поде
Andrey
А, тогда криво. Проще сделать 2 контейнера и в контейнер с nginx волюм от php подкидывать
А в кубере разве можно вольюм из одного контейнера сунуть в другой контейнер?
Andrey
А чем истио не устраивает?
тем что его пока нет в инфре)
Andrey
Конечно
А как? Можно пример?
A
тем что его пока нет в инфре)
Дак введи, чем гордиться
Stas
Ребят, а canary deployment в кубере без istio существует?
госпади опять какие-то костыли от админов тут насоветовали. Нужно поставить что-то в качестве другого иггресс контроллера - contour например, у него свой crd в котором для каждого локейшена можно указать несколько бэкенд сервисов и по-моему задать процент
Andrey
Дак введи, чем гордиться
ну не нужен пока этот микроскоп для того чтобы забить пару гвоздей
Stas
выкручиваются дизайнеры нджинкс ингресса, два ресурса, аннотация, повторение метч рула ради правила роутинга - пипец конечно системный аналитик рядом не проходил
Andor
ну не всем же быть хипстерами
Andor
кому-то и работать надо
Stas
Andrey
Мне прост надо было решить проблему 1 единственную. А главное решить ее не подняв ради этого ceph + istio и еще кучу всего вокруг что будет по ресурсам жрать больше самого приложения
Victor
Ребят, не подскажите куда копать, столкнулся с внезапным лэтэнси веб-приложения после переезда с digital ocean на kubernates (на gke). Подозревал что дело в ссд, поскольку на DO как раз ssd идут по дефолту, а на gke - hd обычные. но поскольку даже после того как поместил в gcePersistentDisk с типом ssd всю папку с веб-приложением, отклик не уменьшился, примерно 1-2 секунды вместо 100 ms что были на DO
Victor
стандартный 100 gb что выдается в пуле на ноду
Victor
а свой gcePersistentDisk выпустил на 50 GB
Victor
ну там rest-бэкенд на php
Victor
оно сериализует, десериализует данные, базу читает итд
Victor
стандартно
Andrey
так мож база тупит, а не приложенька?
Victor
про ssd - это просто подозрение
Victor
cloudsql
Victor
на минималках)
Victor
в том же регионе
Stas
cloudsql
а под ней диск какой?
Victor
там ссд идет на 10 гб
Victor
по дефолту тоже
Stas
видели сколько там иопсов?
Andor
сколько там иопсов будет на 10гб ссд?
Andor
3?
Stas
по моему 300
Stas
зависит от хоста
Victor
да
Victor
Пропускная способность диска (МБ/с) Чтение: 4,8 Запись: 4,8
Victor
нормально
Andrey
Ыыыы
Stas
к базе через cloudsql proxy?
Victor
у меня нагрузки не большие
Victor
да, cloudsql
Stas
сайдкаром?
Victor
да, по стандартному, через helm поставил, он сайдкаром крепит
Stas
эээ кого хельмом?
Victor
cloudsql proxy ))
Victor
понимаю что это возможно перебор, хелмом ставить
Victor
но он по сути тоже самое делает
Stas
щас секунду вы его добавили в свой хелм чарт с деплрйментом приложения?
Andor
кажется он говорил что у него работает
Victor
не совсем, я его отдельно задеплоил, в кластер, чтобы не захламлять свои деплойменты
Victor
он то работает, просто медленно
Stas
это не сайдкаром
Victor
а, точно, я ж через dns с ним общаюсь
Andor
> он сайдкаром крепит
Stas
это лишний хоп на доступ в базу