Sergey
на сотню другу машин и на тыщу другую сервисов
G72K
Sergey
да много интересных моментов
Sergey
любая разворачивался вообще не учитывает и не дает вохможности подтюнит систему до момента деплоя
Sergey
тупо сисцтл подкрутить
Sergey
лимиты
Sergey
просто дергаем вируталку в амазоне и понеслась пиписька женская по кочкам
G72K
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
т.е. оно git merge friendly
Sergey
может еще раз сесть за kube-aws вот не могу вспомнить что не так было
Sergey
спасибо за инфу ценную
G72K
вот тут описал возможный workflow https://github.com/kubernetes-incubator/kube-aws/issues/462
Sergey
пошел читать)
Ivan
Maksim
есть вариант что чуть позже поддержку etcd2 отменят во все
Sergey
вместо решения проблемы - делаем костыль
Sergey
завтра деприкейд 2 версии етсд
Sergey
послезавтра выпил в новых версиях
Sergey
релиз нотосы мы не читаем
Sergey
новый пост тут, ничего не работает, что делать?
Maksim
Sergey
ну я как раз про то, что причина до конца не была выяснена, но нашли костыль и радуются
Sergey
https://cs5.pikabu.ru/post_img/big/2015/12/04/5/1449210847155432089.jpg
Vitaliy
у кого есть опыт:
вот допустим случилось ужасное, мастер-ноды легли (скажем конективити или просто они дохнут все разом).
ясно что kubelet/kubectl и прочее важное не работает... но что происходит с приложениями/подами уже запущенными в кластере? что должно ожидаемо отвалиться?
Maksim
Maksim
Ivan
а на кой тогда корось нужна?
у неё же всё типа протестировано на совместимость.
и тут такой косяк - по официальным мануалам надо допиливать самому.
помоему это косяк короси!
Maksim
Vitaliy
яж и говорю что не работает.. именно в этом плане (все статично) но то что сам процесс работает - эт ясно
Sergey
КорьОСЬ - это косяк
Maksim
Ivan
КорьОСЬ - это косяк
я такой подход не одобряю.
так то лучше и из под одеяла не вылазить вообще
Sergey
Вы ее еще накушаетесь)
Maksim
Я взял атомик. Взял hyperkube написал свои юниты и свой etcd
Maksim
От Шляпы у меня только фланнел. Хотя вот чё-то задумался сменить его на калико...или хотя бы понюхать это самое калико
Eugene
Фланнел от шляпы?
Maksim
ну всмысле из репы -)
Ivan
Вы ее еще накушаетесь)
ну я хз... два года в проде - всё норм.
правда там версия старая и обновлять её пока не собираются))
Sergey
всего два
Sergey
лан то все фигня, как вы хоть системные метрики собираете с хоста, хотя бы тот же рост бэклога
G72K
netdata privileged daemonset
Sergey
не мне надо собрать со всех хостов, отправить в коллектор, отризовать графики
Sergey
privileged - опять же костыль
G72K
ну, таков тренд
Sergey
я против вообще пускания чего либо в докер если надо privileged
Sergey
ну тренд в корьоси и тп осях
Vitaliy
не понял
имею ввиду что пока вроде понятно что должна быть статичность. но на работающих подах как-то отразится недоступность мастеров? к примеру сеть между хостами/подами? резолвы ? что-то такое что помещает работать до восстановления мастеров
Maksim
ну за сеть отвечает либо фланнел либо калико, либо что-то ещё..они живут своей жизнью им на кубер пофигу
G72K
Maksim
резолвы это опять же dns процесс, который живёт на сети.....
Maksim
так что в принцепе ничего там не происходит
Sergey
нахера мне тогда контейнер, если мне надо дать контейнеру привилигированный дсотуп к системе
Vitaliy
у нас weave.. хорошо что пофиг... но таки это размышления или опыт?
Maksim
у меня как то мастер почти сутки валялся))
Sergey
Короче это полемика: я уже не раз в ней участвовал - не хочу
Maksim
я понял, только когда полез деплооить новый аппликатив)
G72K
G72K
контейнеры они же не только про изоляцию
Maksim
Sergey
чем оно удобнее нативного клиента системы мониторинга в системе, который доставляется системой управления конфигурациями?
Sergey
окей мне perf top тоже из под привилигированного контейнера предлагаете запустить?
Sergey
или сейчас попытка разобраться в причине проблемы - маветон? тупо пристреливаем инстанс и апаем новый?
G72K
Maksim
Sergey
таки да?