Sergey
на сотню другу машин и на тыщу другую сервисов
G72K
сбой в кубере или калико - удаляет все данные из etcd от /, разнеся базы на разные кластеры - геморой получаешь только в одном месте
интересно, что в etcd есть acl, но ни один гайд или открытая разворачивалка кластеров не использует их
Sergey
да много интересных моментов
Sergey
любая разворачивался вообще не учитывает и не дает вохможности подтюнит систему до момента деплоя
Sergey
тупо сисцтл подкрутить
Sergey
лимиты
Sergey
просто дергаем вируталку в амазоне и понеслась пиписька женская по кочкам
Sergey
kube-aws что-то мне не зашел, не помню из-за какой проблемы
G72K
единственная тулза которая весь конфиг нормльно рендерит в файлы, потом можно его в гит закатать и при этом подтягивать обновления из свежих версий при этом не теряя своих правок
Sergey
ну с копс по факту тоже можно подредачить клоудформейшин что он создает
Sergey
но я его не знаю, к сожалению или к счастью
Sergey
и все равно я хочу как=то более удобно сие дело делать
Sergey
да и вообще, смотря всякие там деплоилки, я сейчас не про кубер только, зачастую ловишь себя на мысли, что их пишут люди далекие от эксплуатации
Ivan
Всем привет! Нужна помощь по кубернетовскому апи-серверу! У меня с ним серьёзные проблемы. Я не понимаю, в чём дело, но он у меня не поднимается никак. Делал и по ручному мануалу и по готовым скриптам, которые сами всё поднимают - результат один и тот же всегда. Поднимаю на короси, которая заливается по PXE. етсд, фланел и докер стартуют нормально. далее стартую кублет, он подтягивает конфиги и запускает аписервер, контроллер, прокси и шедулер. контейнер с апи-сервером постоянно перезапускается. в логах ноды ничего осмысленного: 1427 reflector.go:190] k8s.io/kubernetes/pkg/kubelet/kubelet.go:382: Failed to list *v1.Service: Get http://127.0.0.1:8080/api/v1/services?resourceV 1427 reflector.go:190] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:46: Failed to list *v1.Pod: Get http://127.0.0.1:8080/api/v1/pods?fieldSele 1427 reflector.go:190] k8s.io/kubernetes/pkg/kubelet/kubelet.go:390: Failed to list *v1.Node: Get http://127.0.0.1:8080/api/v1/nodes?fieldSelector=m 1427 kubelet_node_status.go:230] Setting node annotation to enable volume controller attach/detach ну типа он сам к себе подключиться не может. в логах контейнера тоже фигня E0922 07:37:47.729469 1 status.go:62] apiserver received an error that is not an metav1.Status: rpc error: code = 13 desc = transport is closing E0922 07:37:50.553370 1 status.go:62] apiserver received an error that is not an metav1.Status: rpc error: code = 13 desc = transport: write tcp 10.1.29.11:52106->10.1.29.12:2379: write: connection reset by peer но вот что нашёл интересное - в каком то мануале заметил проверку того, что контейнер с апи-сервером жив, таким образом: curl http://127.0.0.1:8080/healthz так вот, у меня оно (пока контейнер не упал) выдаёт всегда следующее: [+]ping ok [-]poststarthook/bootstrap-controller failed: reason withheld [+]poststarthook/extensions/third-party-resources ok [-]poststarthook/rbac/bootstrap-roles failed: reason withheld [+]poststarthook/ca-registration ok healthz check failed я так подозреваю, что тут надо копать глубоко в кишки апи-сервера, но какой либо инфы я на эту тему вообще не нашёл.
кому интересно - решил проблему. оказывается в kube-apiserver.yaml нехватало опции - —storage-backend=etcd2 🤘
G72K
ну с копс по факту тоже можно подредачить клоудформейшин что он создает
копс да, но там оно уже все оттемплейчено, в kube-aws в файлах еще лежат удобоваримые темплейты
G72K
т.е. оно git merge friendly
Sergey
может еще раз сесть за kube-aws вот не могу вспомнить что не так было
Sergey
спасибо за инфу ценную
G72K
вот тут описал возможный workflow https://github.com/kubernetes-incubator/kube-aws/issues/462
Maksim
кому интересно - решил проблему. оказывается в kube-apiserver.yaml нехватало опции - —storage-backend=etcd2 🤘
Это не решение проблемы. Скорее всего у вас просто etcd2. Кубер с версии 1.6 рекомендует использовать etcd3. А данная опция добавлена для совместимости
Sergey
пошел читать)
Maksim
есть вариант что чуть позже поддержку etcd2 отменят во все
Sergey
вместо решения проблемы - делаем костыль
Sergey
завтра деприкейд 2 версии етсд
Sergey
послезавтра выпил в новых версиях
Sergey
релиз нотосы мы не читаем
Sergey
новый пост тут, ничего не работает, что делать?
Maksim
вместо решения проблемы - делаем костыль
думается там просто etcd2 стоит
Sergey
ну я как раз про то, что причина до конца не была выяснена, но нашли костыль и радуются
Sergey
https://cs5.pikabu.ru/post_img/big/2015/12/04/5/1449210847155432089.jpg
Ivan
думается там просто etcd2 стоит
по умоляанию в последней короси на борту идёт 2 етцд.
Vitaliy
у кого есть опыт: вот допустим случилось ужасное, мастер-ноды легли (скажем конективити или просто они дохнут все разом). ясно что kubelet/kubectl и прочее важное не работает... но что происходит с приложениями/подами уже запущенными в кластере? что должно ожидаемо отвалиться?
Ivan
а на кой тогда корось нужна? у неё же всё типа протестировано на совместимость. и тут такой косяк - по официальным мануалам надо допиливать самому. помоему это косяк короси!
Ivan
послезавтра выпил в новых версиях
обновится корось - обновится всё. и далее, если опять по мануалам будет косяк, как сейчас - то да, придётся разбираться
Vitaliy
яж и говорю что не работает.. именно в этом плане (все статично) но то что сам процесс работает - эт ясно
Ivan
у меня Атомик) етцд в контейнере
у меня будет и в контейнере в том числе. но и бортовые коросные етцд я тоже использую
Sergey
КорьОСЬ - это косяк
Ivan
КорьОСЬ - это косяк
я такой подход не одобряю. так то лучше и из под одеяла не вылазить вообще
Sergey
Вы ее еще накушаетесь)
G72K
у меня Атомик) етцд в контейнере
в DC? у них документация куцая и kubernetes 1.5 в репах. может места знать надо, а я не нашел?
Maksim
Я взял атомик. Взял hyperkube написал свои юниты и свой etcd
Maksim
От Шляпы у меня только фланнел. Хотя вот чё-то задумался сменить его на калико...или хотя бы понюхать это самое калико
Eugene
Фланнел от шляпы?
Maksim
ну всмысле из репы -)
Ivan
Вы ее еще накушаетесь)
ну я хз... два года в проде - всё норм. правда там версия старая и обновлять её пока не собираются))
Sergey
всего два
Sergey
лан то все фигня, как вы хоть системные метрики собираете с хоста, хотя бы тот же рост бэклога
G72K
netdata privileged daemonset
Sergey
не мне надо собрать со всех хостов, отправить в коллектор, отризовать графики
Sergey
privileged - опять же костыль
G72K
ну, таков тренд
Sergey
я против вообще пускания чего либо в докер если надо privileged
Sergey
ну тренд в корьоси и тп осях
Vitaliy
не понял
имею ввиду что пока вроде понятно что должна быть статичность. но на работающих подах как-то отразится недоступность мастеров? к примеру сеть между хостами/подами? резолвы ? что-то такое что помещает работать до восстановления мастеров
Maksim
ну за сеть отвечает либо фланнел либо калико, либо что-то ещё..они живут своей жизнью им на кубер пофигу
Maksim
резолвы это опять же dns процесс, который живёт на сети.....
Maksim
так что в принцепе ничего там не происходит
Sergey
нахера мне тогда контейнер, если мне надо дать контейнеру привилигированный дсотуп к системе
Vitaliy
у нас weave.. хорошо что пофиг... но таки это размышления или опыт?
Maksim
у меня как то мастер почти сутки валялся))
Sergey
Короче это полемика: я уже не раз в ней участвовал - не хочу
Maksim
я понял, только когда полез деплооить новый аппликатив)
G72K
нахера мне тогда контейнер, если мне надо дать контейнеру привилигированный дсотуп к системе
ну как, одной строчкой запустить мониторинг везде (daemonset) , удобно же.
G72K
контейнеры они же не только про изоляцию
Sergey
чем оно удобнее нативного клиента системы мониторинга в системе, который доставляется системой управления конфигурациями?
Maksim
у нас weave.. хорошо что пофиг... но таки это размышления или опыт?
Опыт, я когда делал тестовое облако, не замечал падения аписервера почти сутки)
Sergey
окей мне perf top тоже из под привилигированного контейнера предлагаете запустить?
Sergey
или сейчас попытка разобраться в причине проблемы - маветон? тупо пристреливаем инстанс и апаем новый?
G72K
чем оно удобнее нативного клиента системы мониторинга в системе, который доставляется системой управления конфигурациями?
тем, что не нужна систма управления конфигураций. нужен куб и он рулит всем: от мониторинга до бекапов
Sergey
таки да?
G72K
окей мне perf top тоже из под привилигированного контейнера предлагаете запустить?
оно не зрааботает. есть тикет, то никто этого не хочет. можно сделать pr и добавить perf, тоже хочу. недавно tcpdump нативный так добавили в coreos