Sash
mongo-params.yml с плоским списоком параметров конкретных для запуска данного mongo образа в этом случае заменяет deployment service и прочие манифесты
Etki
имхо kubectl сильно не хватает шаблонизатора
https://github.com/etki/kubely только я его никогда не напишу, походу
Etki
но можно оставить какой-нибудь фидбэк, и, может, я все-таки доберусь до этого дела
Sash
Ну вот helm же и предоставляет шаблонизатор, там как раз всякие условия и функции можно добавлять в свои шаблоны
Etki
если честно, я просто не добрался до него
Sash
https://github.com/kubernetes/helm/blob/master/docs/chart_template_guide/functions_and_pipelines.md
Sash
так что штука вроде может довольно сильно упростить конфигурирование и работает почти из коробки.
Etki
да я те самые три месяца немного другими вещами занимаюсь просто
Anonymous
ну вот я как-то не так выразился наверное: имел ввиду что helm хорош шаблонами и по факту единственное что от него мне надо и если б kubectl была эта фича то было бы клево а всякие остальные штуки перекрываются тем что все равно приходится распаковывать чарт себе, менять под себя и хранить - то есть ничем не отличается от самописного деплоймента, но в минусах куча многословности
Anonymous
но опять же имхо, потому что я не уверен в том что выше сказал и существуют юзкейсы о которых я не знаю: так что ковыряйте и рассказывайте best practices
Sash
Есть у workflow не позразумевает никаких ручных вмешательств измнения конфигураций в кластере, т.е. все делается автоматически через CI в зависимости от состояния кода конфигураций?
M
парни, у кого прометей развернут в кубере, он у вас не течет?
M
у меня за три дня съел почти 10 гигов озу
Anonymous
я лимиты настроил
M
я лимиты настроил
и когда он выходит за них кубер его перезапускает?
Anonymous
Нет, он не может выйти просто
M
ну он в них уперся?
Anonymous
короче смотрите: надо впихнуть слой кеша между юзерами и моим приложением щас так: [юзер]->[ингресс]->[сервис]->[приложение] ничего лучше не придумал чем: [юзер]->[ингресс]->[сервис кеша]->[нгинкс/варниш/whatever]->[сервис]->[приложение] выглядит конечно рукожопно... может у кого еще варианты получше есть?
Logan
теоретически можно сделать отдельный ингресс кеша. Или балансер - кеш - контейнер
Logan
я бы второй вариант сделал
Logan
это если кеш нужен общий, а не для каждого пода свой
Anonymous
балансер это внешний ресурс?
Anonymous
а кеш на контейнер как будет смотреть без сервиса? там надо обертки еще какие-то вешать которые будут адреса подов получать и конфиг менять
Logan
нет, почему внешний? это ингресс
Logan
он будет смотреть через порт контейнера (targetPort)
Anonymous
то есть service с с полем LoadBalancer?
Anonymous
не, я бы хотел чтобы трафик приходил на ингресс: там kube-lego поддерживает ssl
Logan
тогда у балансера бэкендом указываем кеш (через селектор), а у кеша - приложение, которое кешируем
Anonymous
то есть то что я и описал
Anonymous
а кстати, ingress умеет слать не на сервис а сразу на поды? че-то я этот момент упустил
Anonymous
поидее везде в примерах я видел только serviceName как эндпоинт ингресса
Anonymous
а, вижу - мы указываем сервис, он оттуда берет метки подов и шлет прямо на них минуя сервис
Anonymous
но сервис типа все равно нужен, правда можно его без айпишника тогда
Logan
насколько я помню - сервис нужен, но он именно как эндпоинт используется. То есть можно сделать сервис без ингресса, просто как селектор
Anonymous
ну это понятно... сервис который послыает на поды, классика я имею ввиду что судя по коду ингресса он берет с сервиса метки подов и уже сам шлет напрямую ладно, все, сори что загрузил
yolkov
headless service
Anonymous
кто как шаблонизирует манифесты кубернетеса? @etkee напомни плиз вроде ты кидал ссылку на свой проект? я вот думаю изобретать велосипед, или поисмотреть может до меня уже все изобрели :)
Igor
https://github.com/kubernetes/charts
Anonymous
ну да, тоже тема
Igor
чтобы не изобретать велосипед, к тому же helm удобен для CD
Victor
Подскажите, что бы зафиксировать падение пода в prometheusAlerts нужно использовать что то вроде rate, irate? Пробовал чекать по времени последнего пинга, но если серви падает то получаю no data и сравнение вида rule < 1 не срабатывает
Lev
up
Victor
up
up == 0 не фиксирует убийство rc,deploy,service,pods их нужно поменить аннотацией, повесить на них экспортер, как это работает у вас?
Vladimir
У нас кластер в азуре, у каждого сервиса свой статический ip на внешнем азуровском балансере. Иногда хочется, чтобы сервисы друг к другу ходили напрямую (не через балансер). Подскажите, куда копать?
Stanislav
Overlay network
Zon
Обращаться к сервисам по внутреннему днс имени?
Vladimir
Ну я понимаю, что там виртуальная сеть и у контейнеров свои айпишки. Понятно, что нужен какой-то внутренний днс. А где его взять? Это какая-то приблуда, которую надо поднять или он уже есть где-то?
Vladimir
ок, спасибо
Zon
ок, спасибо
https://github.com/kubernetes/kubernetes/tree/master/build/kube-dns вот он
Vladimir
А интересно можно сделать так: инстансы сервиса (поды) разбросаны по кластеру по одному на машину. Другие сервисы, при обращении к этому сервису ходят на тот инстанс, который на их машине бегает. Такое возможно?
Etki
куб не подразумевает варианта "один под на машину", хоть это и достижимо. без составления сервиса на каждую машину такое вряд ли взлетит.
Etki
вот только хотел написать
Zon
как правило, это время не значительно
Ivan
один под на машину = Daemon Set. но в целях оптимизации его обычно не используют
Anonymous
кто-нибудь юзал https://github.com/wercker/cronetes?
Anonymous
MacBook-Pro-Andrey:sheduler drago$ kubectl get pods NAME READY STATUS RESTARTS AGE cronetes-226926354-zcj83 1/1 Running 0 4m nginx-1198612364-en04a 1/1 Running 0 17h nginx-1198612364-lxgep 1/1 Running 0 17h nginx-1198612364-wingz 1/1 Running 0 17h redis-redis-1314662045-3pruz 1/1 Running 0 17h info: 6 completed object(s) was(were) not shown in pods list. Pass —show-all to see all objects.
Anonymous
суть в том что он джобы запускает и компы потом остаются со статусом "completed"
Anonymous
это баг или фича?
Logan
по идее это фича
Anonymous
типа логи, ок... а можно где-то в описании джоба сделать "удаляй под если успешно завершился, и храни если завершился с ошибкой"? я просто в документации по этому поводу ничего не нашел
Etki
насколько понимаю, все будет храниться, пока gc limit не ударит
Etki
к контейнерам, правда, это может не относиться
Anonymous
у меня просто каждую минуту запускается джоб... как бы много их будет :)
Etki
n general, pods which are created do not disappear until someone destroys them. This might be a human or a ReplicationController, or another controller. The only exception to this rule is that pods with a PodPhase of Succeeded or Failed for more than some duration (determined by the master) will expire and be automatically reaped.
Anonymous
мастер это контроллер домена?
Etki
я бы крон-контейнер добавил в под, если у тебя под кроном не подразумевается менеджмент кластера
Etki
мастер-нода, насколько понимаю
Anonymous
ну у меня раньше был обычный crontab подом запускаемый, захотел попробовать "правильно"
Etki
думаю, локальный кронтаб лучше обпуливания кластера со стороны
Etki
если, опять же, речь не идет о менеджменте кластера
Anonymous
речь идет о попытке вынести все шедулен таски во что-то что в кубернетесе называется "sheduledjobs"
Anonymous
или как там щас... названия постоянно меняют :)
Anonymous
так, не врубился, в 1.5.1 петсеты как-то по другому называются, или это баг GKE? $ kubectl apply -f statefulset.yaml error validating "statefulset.yaml": error validating data: couldn't find type: v1beta1.StatefulSet;
Anonymous
или в какой apiVersion они должны быть? если честно то я в них уже запутался
Anonymous
походу что-то пошло не так: $ kubectl version Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1", GitCommit:"82450d03cb057bab0950214ef122b67c83fb11df", GitTreeState:"clean", BuildDate:"2016-12-14T00:52:01Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} $ kubectl get statefulsets the server doesn't have a resource type "statefulsets"
Anonymous
ну я не возражаю против твоего утверждения, даже был бы рад если б оно работало в гугле
Anonymous
ну или бы знал что у меня одного не работает а у кого-то работает... в связи с этим вопрос к @all - у кого в GKE 1.5.1 запущен и он StatefulSet уже запустил? все ок?