Rainbow
jenkins у тебя есть сейчас?
Rainbow
нет
gitlab?
Andrey
gitlab?
teamcity есть.
Rainbow
teamcity используй
Rainbow
manual ci step есть везде
Andor
да какая разница
Andor
что там CD что там
Rainbow
что там CD что там
его не устроило. что нет кнопки запуска ручного
Andor
в его рандеке?
Andrey
teamcity используй
Ребят я на самом деле с вам завидую, потому что судя по доводам вы с людьми уровня ДС/Бухгалтерии и тп не сталкивались.
Andor
тут не подскажу
Rainbow
в его рандеке?
если юзать k8s cronjob
Andrey
где связь?
связь в сложности подбора инструмента. Необходимость кнопки "сделать все хорошо". Минимум консолей/команд и вариантов выстреллить в ногу
Andor
ну сделай, кто тебе мешает
Andrey
ну сделай, кто тебе мешает
так вот и ищу подходы.
Andor
у тебя правда с логикой беда, тебе говорили делать kubectl run job, а ты подумал что это руками пользователям запускать, а не в каком-нибудь твоём рандеке
Rainbow
рандек ДС/Бухгалтерия осволи, а teamcity не освоят?
Andrey
рандек ДС/Бухгалтерия осволи, а teamcity не освоят?
да зачем оно блин надо? Работа ради работы? Лишний раз мозги им погреть? Если этого можно не делать, не понимаю смысла.
Rainbow
Ребят я на самом деле с вам завидую, потому что судя по доводам вы с людьми уровня ДС/Бухгалтерии и тп не сталкивались.
я если бы на каждое "нам не удобно", делал "как раньше", то уже бы повесился. Нужно держать баланс простоты и "как было".
Rainbow
k8s cronjob эт просто
Rainbow
(я 5 лет развиваю софт одной компании, где it это 4 человека из 150)
Andor
k8s cronjob эт просто
кажется он всё равно не готов осваивать
Andrey
я если бы на каждое "нам не удобно", делал "как раньше", то уже бы повесился. Нужно держать баланс простоты и "как было".
Вот представь. Телеграм тебе с очередным апдейтом выкатывает приложуху к которой нужно подключить гит репозиторий, и все свои месседжи ты должен будешь сначала коммитить в гит и только потом они будут отправляться. А на все твои доводы об удобстве тебе расскажут о том что так важно твои месседжи хранить, там же git blame и вообще, нечего тут про удобство, должен быть баланс. Долго ты еще им пропользуешься?
Andrey
k8s cronjob эт просто
Никто не говорил что сложно.
Andrey
кажется он всё равно не готов осваивать
да я знаю как они работают. Вопрос был не в этом.
Andor
на вопрос тебе уже всё равно ответили
Andrey
ну да, эт верно.
Andrey
Я тут еще потестил kubectl run на предмет резулткода и похоже так просто оно не заведется
Vadim
ну да, можно стартануть, потом найти его имя и читать логи + exit code. Итого 2 или 3 команды
Vadim
еще пара трюков и у вас будет свой CI в кубе на чистом шелле, можно сразу стартап организовывать
Andor
можно даже назвать как-нибудь
Andor
что-нибудь связанное с коровами и быками
Andor
загон? не
Andor
ранчер, во
Andor
идеально
Andrey
еще пара трюков и у вас будет свой CI в кубе на чистом шелле, можно сразу стартап организовывать
не, у нас есть рандек и пока вроде никто не умер. На счет CI/gitblame и всей этой портянки ради запуска джоба это тебе к @alexesDev 🙂
Andor
"портянки"?
Rainbow
infrastructure as code отстояная практика, ну да
Andrey
"портянки"?
один единственный Rundek с зеленой кнопкой vs git + jenkins + ELK + сопутствующие проблемы обучения сотрудников
Andor
а у тебя рандек сам всё делает или его всё-таки надо настраивать?
Rainbow
не, у нас есть рандек и пока вроде никто не умер. На счет CI/gitblame и всей этой портянки ради запуска джоба это тебе к @alexesDev 🙂
yaml кстати в репе проекта, в контексте которого выполняется cronjob. Вообще ужас. devops мешать с кодом
Andrey
а у тебя рандек сам всё делает или его всё-таки надо настраивать?
ну по сути кинуть ему команду, ноду и расписание если нужно.
Vadim
родина дала вам стейтфулсет, нетворкполисис, а народу просто нужен шедулер докер контейнеров
Evgeny
Add an annotation for the cri-socket to the current node, for example to use docker: kubectl annotate node <nodename> kubeadm.alpha.kubernetes.io/cri-socket=/var/run/dockershim.sock при попытке обновления кластера просит эту аннотацию, зачем она на мастере?
Andrey
не "шедулер докер контейнеров" даже, а просто крон
ну не, таки проще докинуть ноду в кластер и не думать больше не о чем) Остальным пусть занимается шедулер докер контейнеров
Vadim
тогда подождем когда выяснится что нод на всех не хватит и поды отчего-то в Pending зависли, и как тут в этом рандеке сделать rate limit или мониторить эту хрень, ёпт, наверное нужен прометей, да и логи контролплейна неплохо бы хранить где-то, ну и наверное логи подов тоже, хммм, падажжи, мы кажется это обсуждали
Andor
ну по сути кинуть ему команду, ноду и расписание если нужно.
apiVersion: batch/v1beta1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox args: [ /bin/sh, -c, date; echo Hello from the Kubernetes cluster ] restartPolicy: OnFailure
Andor
даже ноду не надо кидать
Andor
kubectl run hello --schedule="*/1 * * * *" --restart=OnFailure --image=busybox -- /bin/sh -c "date; echo Hello from the Kubernetes cluster" вот так можно ещё, говорят
Rainbow
из cd/ci, там же где твой проект
Andor
как запустить?)
а как хочешь?
Andrey
а как хочешь?
я вообще не хочу, но ДС нужно запускать кнопкой. От твоей команды выше, у меня бы пол отдела ДС уже в обмороке были.
Andor
блядь кто тебе мешает запускать команду при нажатии кнопки?
Rainbow
а как хочешь?
while true; do kubectl run hello--restart=OnFailure --image=busybox -- /bin/sh -c "date; echo Hello from the Kubernetes cluster"; sleep 60; done же
Andor
это сложно в твоём рандеке сделать что ли?
Andor
если джоба запускатеся консольной командой - значит её можно сунуть в запускалку команд, в твоём случае - в твой сраный рандек
Andor
сложная концепция что ли бля
Andor
испанский стыд во всей красе
Andrey
Так я блять с этим вопросом и пришел!
Andrey
я хочу просто перевести джобы внутрь кластера. Просто поменять команды локального запуска на запуск подов в кубере.
Andor
ну так меняй
Andor
тебе уже насовали разной сложности советов как это сделать
Andrey
НО! мне важен stdout + return code чтобы дальше работала логика которая уже есть и достаточно внушительна
Andrey
Вы мне начинаете совать git jenkins и всю эту херню
Andrey
⁠Maxim
Add an annotation for the cri-socket to the current node, for example to use docker: kubectl annotate node <nodename> kubeadm.alpha.kubernetes.io/cri-socket=/var/run/dockershim.sock при попытке обновления кластера просит эту аннотацию, зачем она на мастере?
Кстати интересно, если могу писать такие аннотации, то я могу указывать на разных нодах разные. В духе /var/run/containerd/containerd.sock и /var/run/dockershim.sock на разных нодах, чисто технически как kubernetes к такому отнесется?
Rainbow
jenkins тебе никто не совал. Это умеет любая ci|cd современная, я вообще на примере gitlab говорил.
⁠Maxim
Кстати интересно, если могу писать такие аннотации, то я могу указывать на разных нодах разные. В духе /var/run/containerd/containerd.sock и /var/run/dockershim.sock на разных нодах, чисто технически как kubernetes к такому отнесется?
И ещё заметил сейчас что собирая кластер на двух мастерах из трех такой аннотации не вижу (проебался видимо), а есть только на той мастер ноде с которой начинал собирать, на всех немастерах нодах аннотация есть
⁠Maxim
Но не пойму тогда на что это повлияло