Anonymous
есть набор стейтфулсетов которые по рафту выбирают мастера, при этом у мастера открывается порт а у слейвов закрывается
сервис кубернетеса ведь не умеет пускать на открытый порт? то есть если под лабел попадают 10 подов а порт открыт у 3-го то запрос всегда на 3-й пойдет
Vitalii
Anonymous
ммм, ну да это должно сработать, спасибо
Anonymous
а не, не сработает... он же вешается на pod: если сервис A должен смотреть на все 10 подов а сервис B только на те что с открытыми портами то когда сработает readiness оба сервиса на 3 будут смотреть
Etki
каким-нибудь нжинксом с апрстримами это не решается?
Anonymous
как вариант... или ingress :)
G72K
Роман
rs ведь просто следит за запуском определённого количества реплик?
G72K
ну вам нужно по поду на каждой ноде, это daemonset
G72K
ноды добавляются - поды добавляются
Maksim
replicset просто следить за кол-во подов, но ему пофиг где и как они запущены
Роман
О. Вот оно как. Спасибо. Завтра буду изучать.
Maksim
daemonset следит что бы на каждой node был экзепляр пода
G72K
а с daemonset такой проблемы нет, тем более их в 1.6 можно обновлять стало
Maksim
Maksim
ds в 1.6 заработал как деплой?
Maksim
я просто ещё 1.6 не мучал, у меня 1.5 в бою
G72K
Maksim
а скоро это когда?) месяц? два?
G72K
вот как это поборят, так сразу :) https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.7
bebebe
а кто-нибудь пробовал ansible-container deploy в k8s?
Dmitry
@let
Dmitry
@rossmohax Ранние версии уже есть. У меня стоит, ради того что-бы потыкать ручками
G72K
я не такой смелый :)
G72K
буду ждать 1.7.2 :)
Михаил
Dmitry
Dmitry
Хотя у нас Прометей снаружи
wnmp
Я пользуюсь Rancher, но сейчас Cattle как оркестратор
wnmp
а по ранчеру кто подскажет?
wnmp
Нет, но бывают проблемы с rancher server (cattle процесс) . Столкнулся с зависанием тредов на сервере и повышенным потреблением CPU. Пришлось лезть в базу и удалять записи о воркерах.
wnmp
Ещё очень нестабильно работает обновление через rancher-compose или rancher cli, автоопределение новой версии образа у меня никак не работает.
wnmp
Ну и rancher-compose устарел, хотя и stable. В итоге пользуемся rancher cli.
𝕍ℤ
а почему kubelet в логи сыпет, что не может статы с lxd дисков на zfs получить? зачем ему zfs да и еще от lxd?)
[fs.go:333] Stat fs failed. Error: exit status 1: "/sbin/zfs zfs get -Hp all lxd/images/1e59027d1d58873fc7e23f769232cd4846c6d675ea292bc71037fafc1547649d" => cannot open 'lxd/images/1e59027d1d58873fc7e23f769232cd4846c6d675ea292bc71037fafc1547649d': dataset does not exist
Denis
А кто сейчас чем раскатывает на bare?
kargo (kubespray) очень медленно развивается, может есть достойные варианты?
Logan
Denis
Maxim
А есть кто удачно запустил в продакшен k8s-кластер на CoreOS загружающейся по PXE?
Anonymous
Сорян за оффтоп, не красиво чужие вопросы своим перебивать... я просто оставлю это тут вдруг кто ответит:
Я обычно с пониманием отношусь к тому что я чего-то недопонимаю, но тут походу фундаментальное недопонимание и оно меня бесит.
Короче, есть некое приложение который использует RAFT для достижения консенсуса. При этом, алгоритм там настолько тупо реализован что требуется при запуске указать всех участников и они должны быть доступны, иначе приложение не стартует.
Для того чтобы с самого начала были известны имена всех участников, я заюзал petset с headless service (можно deployment с отдельными сервисами но там свои косяки). То есть, сервис используется в данном случае ТОЛЬКО для того чтобы были стабильные dns-имена правильно резольвящиеся в айпишники.
Приложение запускается, видит всех своих друзей и с использованием raft образует mesh-сесть (ну, не совсем mesh конечно но в данном контексте сойдет) между всеми участниками подключившись НАПРЯМУЮ друг к другу по айпишникам которые срезольвились через dns по порту 5001.
На этом мои знания заканчиваются и начинается магия...
1) Почему без указания абсолютно левого порта в headless serivice который нужен только для резольвинга приложение не запускается (висит на "ожидаем всех участников") - то есть с вероятностью 90% не создаются A-записи в кубернетеском dns? (каюсь, не проверил этот момент потому что утомился)
2) Что я не понимаю в этой схеме? Есть какая-то ключевая позиция которую я упускаю?
Вот код того что проверяю если что: https://pastebin.com/aF6Y2USY
Zon
Сорян за оффтоп, не красиво чужие вопросы своим перебивать... я просто оставлю это тут вдруг кто ответит:
Я обычно с пониманием отношусь к тому что я чего-то недопонимаю, но тут походу фундаментальное недопонимание и оно меня бесит.
Короче, есть некое приложение который использует RAFT для достижения консенсуса. При этом, алгоритм там настолько тупо реализован что требуется при запуске указать всех участников и они должны быть доступны, иначе приложение не стартует.
Для того чтобы с самого начала были известны имена всех участников, я заюзал petset с headless service (можно deployment с отдельными сервисами но там свои косяки). То есть, сервис используется в данном случае ТОЛЬКО для того чтобы были стабильные dns-имена правильно резольвящиеся в айпишники.
Приложение запускается, видит всех своих друзей и с использованием raft образует mesh-сесть (ну, не совсем mesh конечно но в данном контексте сойдет) между всеми участниками подключившись НАПРЯМУЮ друг к другу по айпишникам которые срезольвились через dns по порту 5001.
На этом мои знания заканчиваются и начинается магия...
1) Почему без указания абсолютно левого порта в headless serivice который нужен только для резольвинга приложение не запускается (висит на "ожидаем всех участников") - то есть с вероятностью 90% не создаются A-записи в кубернетеском dns? (каюсь, не проверил этот момент потому что утомился)
2) Что я не понимаю в этой схеме? Есть какая-то ключевая позиция которую я упускаю?
Вот код того что проверяю если что: https://pastebin.com/aF6Y2USY
А там не srv записи разве? для srv записи нужен порт
Anonymous
а, то есть если я порт не задаю (даже если он не нужен) то запись просто не создается? это все объясняет походу, спасибо :)
Anonymous
я че-то про A всегда думал
Anonymous
стопэ, а ping xxx.yyy.svc.cluster.local это ведь A
Zon
Мне кажется srv первична, не?
Vitalii
Михаил
Denis
Maxim
да
Чистый Matchbox для доставки Ignition-конфига на ноду или на Terraform?
Vitalii
но я не призываю делать также:) Это делалось во времена когда terraform там не было и назывался он по другому
Maxim
да
Как с сетью решили?
CNI + flannel(или другой overlay) или kubenet?
Vitalii
cni нету. flannel host-gw
Vitalii
Кто-нибудь запускает postgres в подах? Как рестартуете/останавливаете ?
Igor
Запускаем cockroachdb в подах :)
Igor
драйвер postgres
Роман
Что-то заинтересовался моментом... Если ставить куб "из коробки", если мастер упадёт, как будет вести себя кластер? Сайты будут открываться?
Logan
Роман
А как обычно поднимают упавший мастер? Там же токены нужны и прочее. Что почитать?
Knyage
Уточни, на счет упал. Т.е. сервер совсем умер? Или отключился, перезагрузился,включился?
Logan
Уточним - он упал или он уничтожен?
Роман
Например, питание от сервера отключили.
Ааа, хотя, после старта он же должен сам подняться?
Или, например, памяти не хватило и упал по сегфолту - маловероятно, но а вдруг!
Роман
Knyage
Igor
Igor
Logan
Роман
Logan
тогда никаких проблем не будет вообще. создаем нового мастера, цепляем к существующему, удаляем старого из конфигов
Ivan
а кто нить бэкапит etcd и пробовал его ресторить?=)
Artem
http://s6.pikabu.ru/post_img/2017/06/05/0/og_og_14966114892546496.jpg
Knyage
Logan
Logan
там ничего сложного на самом деле
Ivan
там ничего сложного на самом деле
там вроде 2 метода:
1. через snapshot
2. через backup.
Различие в версиях хранимых данных(v2/v3). У нас в etcd и те и те, вот и интересно стало, кто делал и как=)