Rainbow
ну -f перебор, но смысл ясен.
Grey
Andrey
Оверрайд текущего образа и запуск по кнопке.
Rainbow
не нужно жеж, docker build делает ci/cd на основе Dockerfile 🤦‍♂️ это проблема
Andrey
не нужно жеж, docker build делает ci/cd на основе Dockerfile 🤦‍♂️ это проблема
Можно и так. Но мы говорили о разнице подходов run vs exec. Вот собственно вопрос, есть ли разница в моей ситуации?
Rainbow
а в итоге оказывается, что у тебя нет cd. Что лавионообразно тянет кучи костылей
Andrey
Rainbow
я говорю, что проблема "docker build" делают руками, это проблема, после которой все костыли с рандеском
Andrey
я говорю, что проблема "docker build" делают руками, это проблема, после которой все костыли с рандеском
так без проблем, его мы вынесем на ci, и это будет даже лучше, потому что ДС будут продолжать просто делать git commit. Вопрос скорее в том, надо ли их заставлять делать еще и CD, если можно обойтись kubectl run --rm
Andrey
ты делашеь cd, они тут причем? тебе дали cronjob.yaml, dockerfile, дальше твои проблемы, настраивай teamcity
тут нельзя делать CD в любое попавшееся время. Это контроллируют ДС, когда можно запускать уже новую версию, а когда должно доработать на старой. В случае с kubectl run. Все просто. Оно деплоится каждый раз свежее. В случае с exec это нужно котроллировать + при обновлении могут быть сложности с уже запущенными джобами.
Rainbow
мы уже говорим про нормальные процессы, где нет run/exec
Rainbow
kubectl apply -f cronjob.yaml не убивает работающие джобы
Andrey
мы уже говорим про нормальные процессы, где нет run/exec
от этого пока не уйти. Ну точнее уйти, но потребует гораздо больше времени и сил.
Rainbow
разруха не в клозетах, а в головах.
Andrey
Я все же хотел бы вернуться к разговору о kubectl run --rm vs kubectl exec в преддеплоенный пул. Чем второй вариант предложенный тобой лучше?
Andor
разруха не в клозетах, а в головах.
в "датасаенс" ваще плохо нормальные практики приживаются
Andor
у них же нормальный стиль это "хуяк-хуяк-в-продакшн-посчитали-готово"
Rainbow
у них же нормальный стиль это "хуяк-хуяк-в-продакшн-посчитали-готово"
да я работал с такими. Просто показываешь как надо и все, молча.
Andor
ну у них нередко задачи одноразовые
Andor
не кроны даже
Andrey
Ну как бы да. Но их понять можно, у них ситуация такая что их часто считают айтишниками, коими они не являются вовсе.
Andrey
ну у них нередко задачи одноразовые
да, к сожалению часто бывают прям совсем одноразовые аналитические задачи
Andor
угу
Andor
наговнякал скрипт - запустил один раз - получил свои чиселки на выходе - больше этот скрипт никогда не будет запускаться
Andrey
У меня было однажды эпичное. Дали репу. Назвается analytics-php. Ну как бы вроде все логично, хоть и кровь из глаз при мысли о том что это аналитика на пыхе. Я значит такой собрался с мыслями, принял на грудь, открываю.... А там python.
Rainbow
звучит как Apache Spark, а не kubectl run
Andrey
звучит как Apache Spark, а не kubectl run
и такое имеется. Но нужно далеко не всегда.
G72K
ну потому что запуская команду kubectl apply -f job.yaml я не получу в аутпут ее логи и резалткод. Не смогу контроллировать таймауты и ретраи в этой же системе.
Rundeck это другой уровень удобства, зачем себе жизнь усложнять и переделывать под куцые CronJob кубовые? Если надо что то в кубе запустить из rundeck , то можно и kubectl run. (Тред не читал)
Andrey
звучит как Apache Spark, а не kubectl run
если они модель обучают, то там например tensorflow(нет kubeflow нам не надо) или еще какие-то либы. Все грозятся мне на GPU перейти, но чот пока на процах вывозят нормально. Т.е. вроде ДС, но не спарком единым
Rainbow
даже image собирать не нужно
Rainbow
https://github.com/kubeless/kubeless-ui/raw/master/kubeless.png даже git не нужен
Andrey
kubeless?
ну вот смотри, оно как бы вроде стильно модно молодежно, но умеет ли оно подключать компилируемые библиотеки? тот же tensorflow или scikit тащит кучу бинарей, а некоторые прям собирает при установке. Просто print гонять можно где угодно, проблемы начинаются потом
Vadim
Весь этот Severless это такой xinetd Клауд нативный
да вообще стыд какой-то, я вчера CI от их артефактов чистил
Andrey
Rainbow
бл7, spart, Jupyter и ещё хочешь свой костыль на kubectl exec а для kubeless не думаю, что сложно собрать кастом image, чтобы быстрее собирался.
Rainbow
Andrey
бл7, spart, Jupyter и ещё хочешь свой костыль на kubectl exec а для kubeless не думаю, что сложно собрать кастом image, чтобы быстрее собирался.
я отталкиваюсь от того, сколько всего придется сделать и потом еще тратить на поддержку. В текущей ситуации мне придется только CI сделать для сборки образа и поменять все команды в rundeck. И оно продолжит работать как работало. И я реально не понимаю в чем проблема kubectl run --rm, это ж тоже самое что запустить под с командой. Только еще и вывод с резалт кодом будет.
G72K
хочется убрать отдельные хосты под джобы, завернуть все в контейнеры и забыть об их поддержке. По этому и возник вопрос, о том как проще всего переехать. Таки набор параметров который заставить вернуть stdout и result code я похоже нашел. $ kubectl run --rm -i --tty busybox --restart=Never --image=busybox -- sh -c "exit 5" pod "busybox" deleted pod default/busybox terminated (Error) $ echo $? 5 Пока ищу возможные побочные эффекты которые могут заставить отказаться от этой идеи.
Побочный эффект - перегруженный кластер. На каждую джобу прописывайте ресурсы и лимиты тщательно, количество ephemeral-storage тоже. Все джобы в отдельном/ных неймспейс на которых resource quota развешать. В этих же неймспейс дефолтную network policy запрещающую все кроме днс, остальные полиси на каждую джобу отдельно (скажем чтобы могла ходить только в свое приложение). Ну и podsecuritycontext не забыть чтобы от рута вся эта хрень не работала .
Andrey
А перегруженный кластер просто от джобов или там побочная нагрузка какая-то есть? Ну я имею в виду что ресурсов у джоб будет столько же сколько и было, я не планирую оверквотить.
Алексей
Народ, а кто нибудь кто через ansible деплоит, вы автоматизирует создание бд для сервиса?
Алексей
Можно по подробнее?
Michael
омфг
Алексей
Я не доконца понимаю, что в моем вопросе так удивляет?
Andor
Ансибл
Алексей
Ансибл
Помнится раньше в этом чате мне сказали что через ansible норм деплоить
Andor
Говори имя
Алексей
Ух, думаю, что не вспомню
Алексей
Не, вопрос был именно про деплой сервисов
Andor
Наверняка того человека уже забанили за троллинг
Алексей
А что плохого в деплое через ансибл?
Алексей
создаем бд через Service Catalog, это один вызов модулем k8s
Не совсем понимаю как через service catalog создать новую бд в постгресе?
Vadim
Не совсем понимаю как через service catalog создать новую бд в постгресе?
подожди, тебе новый инстанс постгресса нужен или создать новую БД в бегущем постгрессе?
Алексей
Создать новую бд в субд
Rainbow
https://hub.docker.com обновился, слишком режет глаза в ночи
Andrey
Создать новую бд в субд
Так это наверное не про k8s. Это можно и ансиблом.
Алексей
Ну вот, а СУБД в k8s крутится
Vadim
Ну вот, а СУБД в k8s крутится
тогда причем тут кубер?
Rainbow
вы хотите тащить ansible ради 1-2 строк создания db?
Andrey
Ну вот, а СУБД в k8s крутится
ну тут вариантов море. 1) Вытащить порт базы наружу и ходить в него как в любую другую базу 2) kubectl exec в контейнер базы 3) Запустить другой под с командой коннекта и создания БД в чем конкретно у вас проблема? В базу попасть?
Andrey
еще можно оператора своего написать 😄
Алексей
Создание бд, пользователя, добавить для пользователя пермишены на роботу с базой, деплое сервиса который будет подключаться к базе с креслами ранее созданного пользователя
Алексей
база тестовая? не проще ее готовую упаковать в контейнер?
Ну вообще я пытаюсь описать полный процесс развертывания всего окружения с созданием всех кредов
Andrey
ну там типо есть осбенности некоторые чуть чуть