Rainbow
Ну у всех своё мнение. Я много случаев видел, когда за тонной кода забывали сделать транзакцию и неделями искали проблему. С деньгими. Нет, спасибо.
Quang
Anyone is running Magento on docker ??
Quang
yes
Sr i have question.. how do you scale up your magento app ?? You are using redis for session cache and AWS EFS.. something like that ??
Andrey
$ run migrations $ kubectl apply
а миграции через job c restartPolicy: Never делать?
Rainbow
а миграции через job c restartPolicy: Never делать?
У вас как деплой происходит, руками или ci/cd?
Quang
I did not scale
How many docker container you are using for Magento?? How about CI?? Any downtime when you do deployment via Kubernestes ??
Andrey
Rainbow
автоматом от пуша до выката
ну в том же месте, перед выкатки запускать миграцию.
Andrey
меня интересует инструмент в разрезе кубера. Для ci/cd доступен только endpoint кубера, вся конфигурация на его стороне, ci/cd только image меняет.
Rainbow
если предположить, что cd меняет только image, тогда как быть, если миграции прошли с ошибкой?... мало что можно. Миграции должны быть шагом перед деплоем в pipeline. gitlab runner/drone.io могут запускаться в k8n, если не хочется делать изнутри.
Rainbow
test -> build image -> migrate -> deploy это супер стандартная схема. Вообще все такое можно подсматривать у gitlab, у них все открыто и задокументировано.
Rainbow
https://docs.gitlab.com/ee/development/migration_style_guide.html в том числе требования к самим миграциям.
Rainbow
У gitlab как эталона большого приложения, которое не просто выкатить. Не как gitlabci.
Andrey
вообще я бы миграции ещё делал сначала на копии базы
Rainbow
Это image собирать с миграциями нужно... как-то костыльно выйдет. Проще настоять на доступе к базе
Rainbow
вообще я бы миграции ещё делал сначала на копии базы
у всех по разному, есть staging -> preproduction -> production
Rainbow
staging отдельная база. preproduction на проде, но не для всех. Это схема gitlab.
Rainbow
Т.е. нельзя просто пойти и сделать деплой в production. Только через staging и preproduction
Andrey
ну, настаивать не обязательно, это мне решать. просто билды делаются в vsts, там всё немного костыльно и добавление нового внешнего источника или endpoint затруднительно
Andrey
Т.е. нельзя просто пойти и сделать деплой в production. Только через staging и preproduction
это да, я пока строю автомат от мастера до дев окружения
Andrey
плюс база находится в google cloud и снаружи недоступна
Rainbow
Хотя у тех же rails миграции лежать обычно в image. Сделать job, выполнить migration звучит нормально.
PsyDebug
Друзья, как разрулить такую ситуацию: есть заранее подготовленный образ с базой, создаю под и в итоге не вижу таблиц в своей базе, хотя сама база есть. Пробовал отдельно запустить контейнер с этого образа, в нём все файлы таблиц на месте. Грешу на сторадж, но пока не понимаю как это происходит
Rainbow
как-то не сходятся 2 ответа...
ℭ𝔞𝔯𝔯𝔬𝔩
всё же экспортируется, если есть volumeMounts:
ℭ𝔞𝔯𝔯𝔬𝔩
а volume mysql-persistent-storage существует до запуска пода?
ℭ𝔞𝔯𝔯𝔬𝔩
и этот volume пустой?
PsyDebug
да
PsyDebug
ну, pvc свеже созданный
PsyDebug
либо я не правильно понимаю работу со стораджами
Rainbow
Разве volumes не нужно описывать ниже описания контейнера? specs: container: ... volumes: - name: mysql-persistent-storage hostPath: path: /var/db
ℭ𝔞𝔯𝔯𝔬𝔩
то есть есть такое: volumes: - name: mysql-persistent-storage emptyDir: {}
PsyDebug
аа, я понял
ℭ𝔞𝔯𝔯𝔬𝔩
аа, я понял
эмммм?..
PsyDebug
не, не понял. не логично. создаю так:
PsyDebug
containers: ... volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim
PsyDebug
яб понял еслиб вообще никаких данных не осталось, но например в табличке mysql/user остались мои пользователи, сама моя база тоже создана, но она просто пустая стала
Иван
Все обрыл, не могу найти. Как померить сколько ест процессора конкретный деплоймент?
Иван
Через связку Heapster+influx+grafana не получается, так как в influx нету join'ов.
Sergey
Как как хипстер депрекейтед
Иван
Знаю, с metric-server вообще не понял пока как общаться)
Sergey
Сразу в прометей спотреть тадауж
Иван
В прометей смотрел, не нашел там вообще инфы по загрузке подов
Иван
Может туда как-то метрики можно добавить? Если тыкнете в статью буду благодарен)
Sergey
Ну для начала их не надо добавлять prometheus.io
Andrey
у меня пока нет helm
Dmytro
а как быть если миграция должна новый столбец сделать, на базе уже существующих? ты накатишь миграцию, сделается столбец с содержимым, а код еще старый работает, изменит старый столбец и данные разъедутся
так это надо правильно делать миграции, 3-step migration или как там, короче сначала деплоится код который умеет работать со старой схемой базы и с новой, потом деплоится (или еще как запускается миграция), когда миграция закончена - деплоится версия кода которая работает только с новой схемой базы (чистится код)
Andrey
забавная у меня проблема. kubectl run говорит, что Error from server (AlreadyExists): pods "smartpb-scheduler-init" already exists при этом kubectl get pods —show-all ничего не показывает. Никто не сталкивался?
Artyom
kubectl get pods --all-namespaces
Dmytro
Denis
Вот это наброс :) https://developers.redhat.com/blog/2018/06/28/why-kubernetes-is-the-new-application-server/
Vadim
Stating the obvious же
Stas
редхаты свои бумажки пишут для удивительных энтерпрайзных дядек
Vadim
Конкретно эта бумажка для девелоперов, но дальше будут обидные памфлеты для админов, "запомните это твит"
Quang
“Routing to internal Kubernetes services using proxies and Ingress controllers” https://tech.holidayextras.com/routing-to-internal-kubernetes-services-using-proxies-and-ingress-controllers-e7eb44954d53
Quang
Do i need a nginx proxy beside an ingress for using domain name routing ??
Stas
you need nginx ingress controller which is an nginx proxy managed through definition of k8s native ingress resources
Quang
Ak i got it now..
Maksim
Конкретно эта бумажка для девелоперов, но дальше будут обидные памфлеты для админов, "запомните это твит"
Да знаем ваших. Лезут везде и несут опеншифт в массы, а сами его ядро уже 3 года не трогали
Maksim
Без вазелина залезут, да же не зная инфру и потребности. А интерпрайз админы кушают ибо не умеют думать, толь клочки за вендором нажимать
PsyDebug
https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0
PsyDebug
Норм так разжевано
Й
Ток с лоад балансером немного приврали
Andrey
А чем опеншифт-то от ванильного k8s отличается? Пролистал доки по origin, но особо разницы не заметил.