Dmitry
Ну только у kubeadm cli-интерфейс стал beta (в отдельности от всего остального!) и появился kargo
Logan
должен напомнить, что куб - это вообще не сервис. Это клей, интегратор самых разных штук в единое рабочее решение. Разные типы контейнеров (это пока в альфе из-за crio). Разные типы оверлейной сети (weave, calico), разные типы балансировщиков, разые типы томов. каждый собирает велосипед таким, какой он им нужен
Logan
из-за этого разобраться в клубке – непросто, постоянно нужно думать о том, где кончается сфера ответственности куба и начинается сфера ответственности чего-то другого. тот же калико живет и здравствует сам по себе
Dmitry
Да я понимаю. Но велосипед должен собираться и ехать. А когда много разных людей собирают один и тот же велосипед - все вообще должно идеально собираться
Dmitry
Dmitry
А на остальных ему параллельно: отдали в opensource и пусть возятся
Logan
Dmitry
Dmitry
Или я что-то путаю и у них нет hosted-версии k8s (не верю)?
Dmitry
Dmitry
Его буквально за последние полгода допилили до очень хорошего состояния
Dmitry
Ну а почему нет? Что вам в нем не нравилось?
Dmitry
compose-файлы теперь умеют всю функциональность
Dmitry
Фич хватает, работает из коробки, довольно интуитивно
Logan
Ну а почему нет? Что вам в нем не нравилось?
неработоспособность (критические баги) и цена. Я предпочел работать с кубом. Если вы планируете рассказать кубоводам, что куб - плохой и надо переходить на swarm - боюсь, у вас будет мало шансов
Dmitry
Да у меня нет цели кому-то что-то доказать. Работает - и ладно
G72K
Dmitry
Может начнем со "swarm плохой"?
Konstantin
Я бы тоже послушал, чем сейчас swarm хорош и что умеет
Dmitry
Лично меня в нем радует как минимум наличие довольно полной вменяемой доки
G72K
мне нравится система объектов в Kube, swarm так умеет? Такие штуки как prometheus-operator, etcd-operator там возможны? нэймспейсы есть? RBAC?
G72K
вот только сегодня задачка: надо по щелчку из выбранных подов начать зеркалить трафик, и по щелчку прекращать. Такое в swarm как-нибудь организовать можно?
Konstantin
Ты бы еще рассказал, как это сделать в k8s
Dmitry
Dmitry
Если по шелчку прекращать - то reverse proxy в помощь
Dmitry
Неймспейсы есть, зовутся stack'ами
Dmitry
С авторизацией, насколько я понимаю, не все гладко, но наткнулся вот на https://docs.docker.com/engine/extend/plugins_authorization/
Dmitry
G72K
Ты бы еще рассказал, как это сделать в k8s
ну придумали так, не реализовали пока, может какие-нибудь подводные камни есть, но план такой: в каждом поде есть контейнер, который смотрит на label пода (самого себя), появилась label -> запускаем что-то там (забыл название) на pcap, оно начинает лить. убрался label -> убиваем. в итоге разработчики, если хотят получить трафик с конкретнго пода, просто ему метку присваивают
Dmitry
Dmitry
Sidecar'ы, кажется?
Dmitry
Хотя в общем случае можно то же самое заимплементить и со свармом: брать ip нужного контейнера, деплоить перехватчик трафика на нужные ноды и писать что хочется
Dmitry
API есть и там и там
Dmitry
Да, возможно у k8s больше готовых решений. Ну точнее сказать полуготовых, в alpha-alpha-not-for-production
Dmitry
В общем хз. Просто у меня пригорело. Концептуально к самому k8s у меня претензий никаких. Но с точки зрения заботливо разложенных граблей...
G72K
ОК, ну давай менее экзотическое что-нибудь. скажем безопасное обновление кластера. в kube есть PodDistruptionBudget, и если твой деплой кластера делает kubectl node drain (как у нас kube-aws скажем), то оно завершится успехом только если поды на ноде могут быть прибиты, не привышая заранее заданное количество. В итоге некоторые ноды уходять на перезагрузку, а некоторые в цикле крутят kubectl node drain, пока оно не завершится успехом, что случится, когда ноды перезагрузятся и подбирут прибитые поды (если за это время им некуда было пойти скажем)
G72K
как итог - можно перезагрузить весб кластер без даунтайма приложений, даже если они stateful
Dmitry
Ну согласен, ладно. У сварма такого нет (пока?). Он еще слишком молод
Dmitry
Аналог node drain есть, но не PodDistruptionBudget
G72K
куб может быть не сильно user friendly, но в нем какие-то мелочи продуманы часто, которые на игрушечных задачах не всплывут
G72K
читаешь github issues и диву даешься, какие тонкие материи обсуждают (и решают)
Dmitry
Dmitry
В общем ладно. Собственно для меня самая большая боль была - это сеть. Жить придется в public cloud'е и без ipsec никак
Dmitry
Получается кроме weave альтернатив нет?
Dmitry
Кто-нибудь его использует? Как он?
Dmitry
Судя по отзывам в интернете (да и по собственным экспериментам) он любит жрать CPU и существенно снижать bandwidth
Dmitry
Притом я его тестил даже без шифрования
Dmitry
Но у меня он почему-то не смог использовать fastdp
Dmitry
Судя по логам. Как понять причину - непонятно. В документацией швах: там написано, что weave и без наших рук слишком умный и сам решит, когда и что использовать
Anonymous
Народ, а если я половины слов не знаю - это норм, или начать комплексовать? )
Dmitry
Etki
Etki
мда, сначала подумал что в тему будет, ну ладно теперь уж
Anonymous
кто-нить разворачивал zookeeper на kubernetes?
Anonymous
я могу как-то уложиться в одного агента с 1 ядерным процессором и 2гб ram? 😢
Anonymous
а то как-то не хочется платить по 10к+ в месяц за то что играюсь с кластерами
KlonD90
vscale.io
Anonymous
ничеси, почему там дешевле чем на azure?
𝕍ℤ
и говорят скорость на ядро нищенская. зато бюджетно
Dmitry
Dmitry
За саппорт не ручаюсь, продом бы не рисковал, но в целом работает более чем сносно
Anonymous
а что делать, если helm delete виснет и ничего не делает? 🤔
Михаил
Михаил
вообще я думаю раздачу токенов устроить, если надо авторизовать конечных юзеров
Maksim
Anonymous
настраивал кто jenkins?
создал ingress с доменом, теперь думаю как пробросить порт для jnlp slave:
- через ingress: эта штука норм работает? https://github.com/kubernetes/ingress/blob/master/examples/tcp/nginx/README.md
- создать еще один сервис с type=LoadBalancer и указать там порт
кто как сделал?
Dmitry
@
kay
Dmitry
@vkfont Да, настраивал. Все работает
kay
jnlp коннектится к мастеру по http. nginx отлично с proxypass справляется
Dmitry
ну.. по-крайней мере мы воркеры динамически поднимаем как поды
Anonymous
По первому варианту?
Dmitry
@kay_rus не понимаю тебя. Какие secrets? Для чего?
Dmitry
https://wiki.jenkins-ci.org/display/JENKINS/Kubernetes+Plugin
Dmitry
Вот плагин