Maxim
Maxim
у меня тут докер-демон зашкварило
Maxim
# strace -p 16080
Process 16080 attached
read(37, "<probe> ERRO: 2016/09/18 20:34:2"..., 32768) = 156
futex(0x2a69030, FUTEX_WAKE, 1) = 1
futex(0x2a68f70, FUTEX_WAKE, 1) = 1
futex(0xc8203fb508, FUTEX_WAKE, 1) = 1
write(38, "{\"log\":\"\\u003cprobe\\u003e ERRO: "..., 236) = 236
read(37, "<probe> ERRO: 2016/09/18 20:34:3"..., 32768) = 156
futex(0x2a69030, FUTEX_WAKE, 1) = 1
futex(0x2a68f70, FUTEX_WAKE, 1) = 1
futex(0xc8202fe108, FUTEX_WAKE, 1) = 1
write(38, "{\"log\":\"\\u003cprobe\\u003e ERRO: "..., 236) = 236
read(37, "<probe> ERRO: 2016/09/18 20:34:4"..., 32768) = 156
futex(0x2a69030, FUTEX_WAKE, 1) = 1
futex(0x2a68f70, FUTEX_WAKE, 1) = 1
futex(0xc82002ad08, FUTEX_WAKE, 1) = 1
Maxim
и так по кругу
Maxim
никакие клиентские команды не срабатывают
Maxim
походу это вот оно: https://github.com/docker/docker/issues/13885
Alexander
Попробовав docker swarm mode решил вернуться к k8s, как советовали :)
Alexander
Вопрос, с какой версии начать ? В google шустро штампуют релизы.
Etki
С текущей?
Etki
Я немного отвлекся от всей темы, но, насколько понимаю, 1.3.5 - текущая, и в ней закрыли некоторые бесячие баги с кубеднс
Dmitry
1.3.7 текущая https://github.com/kubernetes/kubernetes/releases
Dmitry
Кто вписал kubernetes в CI/CD pipeline? Т.е как происходит деплой проектов, запуск тестов и прочее, как хранить все конфигурации проектов (configMap, services, deployments, etc). У нас сейчас jenkins + ansible+ bash, но что-то это нифига не удобно, пробую переписать все что есть на баше и ansible на Golang
Etki
у меня простенькая приложуха на руби, рендерит liquid-шаблоны и затем прогоняет apply -f по каталогам. создание кластера и настройка kubectl через gcloud. все внутри дженкинса.
Etki
(если честно, так ни разу и не запустил весь пайплайн, перекинули на другой проект)
Dmitry
ну вот когда количество приложений растет и логика становится все сложнее и сложнее то приходится писать костыли
Dmitry
helm и helmc чет не зашел
Anonymous
у меня кубик на гугле, щас играюсь с CI на базе circleci
Dmitry
не слишком гибко настраивается
Anonymous
вот такой пайп пока сделал:
Anonymous
https://gist.github.com/afoninsky/110148adcb12e00bace40e4c1c25ee18
Etki
ну у меня там по проектам все расположено. в проекте директории namespace, deployment, petset, service, etc с произвольной структурой внутри. логически подразумевается, что в одном проекте один неймспейс.
Etki
Не сказал бы, что это сильно забивается. Единственное, чего не хватает - это итерации шаблона (e.g. создать деплойменты elastic-1, elastic-2, elastic-3 для тех случаев, когда нужна промежуточная штука между петсетом и деплойментом), но там свои проблемы и надо еще кучу времени портатить, я забил на это.
Dmitry
Ну вот это у тебя простой кейс получается, а если у тебя например 10 микросервисов, в каждом нужно билдить разное количество docker images, так же перед деплоем запускать разные тесты, блокируещие и нет, артифакты тестов выкладывать куда-то, слать нотификации в слаку и прочее. CricleCI поможет в этом?
Dmitry
миграции на бд у нас накатываются через kubernetes jobs, если джоба зафейлилась, надо фейлить весь билд
Anonymous
circleci поможет потому что там пайплайн в той же репе что и микросервис... только блокирующего поведения у них нет, по крайней мере в доках я не нашел, не сделать так "тестер Марина провела быстрый смоук и подтвердила что все ок на стажинге так что можно деплоить в прод"
Anonymous
но в целом если что-то сложное то надо какой-нить jenkins
Dmitry
ну вот у нас дженкинс, но вся логика работы с кластером на баше написана
Anonymous
я хз есть здесь мантейнеры дженкинса2, но я пытался внедрить его в прод и неплохо так говна поел (нерабочие версии плагинов и прочее)
скорее всего я такой криворук и система нормальная, но в текущий воркфлоу так и не подошла :(
Anonymous
так что я в поисках рабочей CI до сих пор:)
Etki
Да с дженкинсом всегда так, это норма. concourse-то смотрел?
Anonymous
пока забил, но галочку поставил, спасибо :)
kay
Коллеги, а есть возможность задать путь к emptydir в kubernetes? а то у меня grafana pod сожрал весь /var/lib.
Maxim
походу нет, пока вот это не закроют: https://github.com/kubernetes/kubernetes/issues/13479
Alexander
1.3.7 кто-то уже пробовал?
Maxim
работает
Maxim
через пару часов после релиза примерно обновил
Alexander
не страшно?
Maxim
археология страшнее
Maxim
пока что еще обновление минорного релиза ни разу не ломало ничего
Anonymous
О, а у меня все деплойменты в предпоследнем отвалились ( так что я очкую
Anonymous
Гугль
Maxim
ааа, у тебя расходятся версии
Maxim
в GKE ты ж апишечкой не рулишь
Alexander
Maxim
какую гугол дал, такую и ешь
Dmitry
А как кластер обновляете? Через kops?
Maxim
копс?
Dmitry
А то у нас при обновлении постоянно редис кластер разваливается
Maxim
а, не
Maxim
у меня chef
Dmitry
https://github.com/kubernetes/kops
Maxim
дада, понял
Dmitry
Ну а обновление как происходит? по одной ноде обновляешь?
Maxim
я просто новый бинарь kubelet'a заношу на ноды и новые манифесты в /etc/kubernetes/manifests
Maxim
дальше оно само
Dmitry
а что за манифесты?
Maxim
ну которые kubelet запускает
Maxim
apiserver, controller-manager, scheduler, proxy, etc...
Dmitry
Т.е ты руками на каждую ноду что ли заходишь? а если их 20 штук?
Maxim
у меня chef
Dmitry
хитро
Maxim
https://www.chef.io/
Dmitry
Да я в курсе)
Anonymous
@pipopolam а ты вообще хайртшься на сингл джобы? Сори за оффтоп, я тебя не знаю но уже почти люблю ;)
Maxim
меня за это казнят на основной работе
Maxim
с одной стороны
Maxim
с другой стороны, я вон для @DenisIzmaylov тогда весь кластер поднял удаленно
Anonymous
Maxim
вроде ок
Anonymous
Ну подработать в выхи это не запрещается надеюсь?
Dmitry
Maxim
нет
Maxim
только те, для которых манифесты поменялись
Maxim
ты можешь пойти сейчас на любую ноду и пристрелить там kubelet
Maxim
все поды будут продолжать бежать
Maxim
остановить-то их будет некому со смертью кьюблета ;)
Dmitry
это круто, а то у нас проблема что когда по очереди гасишь и переподнимаешь новые ноды с новой версией kubelet, в один момент получается запущен только один под redis cluster и он разваливается и не поднимается уже
Maxim
эээ
Maxim
а зачем ты ноды гасишь?
Dmitry
ну копс так делает, у нас aws