Anonymous
Ivan
но это и так понятно, что оно будет refused - порт-то не замапился
Роман
Подскажите по графане/прометею. Хочу выполнить такой запрос:
node_load1{kubernetes_node="$nodename"} / count by(job, instance)(count by(job, instance, cpu)(node_cpu{kubernetes_node="$nodename"}))
По отдельности (до знака "/" и после него) - запросы возвращают значения. Строка целиком - нет. Как одно разделить на другое?
Роман
Anonymous
сори что врываюсь в обсуждение другого вопроса... просто опубликую свой вопрос а потом вдруг кто прочтет и ответит :) надеюсь не помешаю:
короче, есть база из трех инстансов: один из них мастер в который надо писать, два слейва
1) все это запускается через стейтфулсеты
2) мне нужен сервис который будет роутить на актуальный мастер
я придумал только сделать рединесс-проверки на каждом поде и тот который мастер будет ее выполнять - тогда будет отдельный сервис обращения к которому всегда будут посылать на текущий актуальный мастер
проблема в том что рединесс так же используется для запуска подов... то есть следующий под в стейтфулсете не запустится пока предыдущий не скажет что он готов
какой может быть воркараунд?
Ivan
Logan
Logan
тут либо пусть дрова определяют (так делает монго) либо хапрокси и аналоги
Logan
если у тебя монго – то определять активного мастера и конфиг должны драйвера!
Aleksandra
Anonymous
они могут выбраться между собой
Logan
Anonymous
мб наивный вопрос, но как смысл скейлить поды с node.js беком в рамках одной ноды?
Aleksandra
они могут выбраться между собой
мастер выбирающийся изнутри - это какой-то в целом плохой сценарий. В принципе можно хуком каким-нибудь label менять у пода, а сервис вешать на эту метку
Anonymous
neo4j весь такой
Aleksandra
насколько я понимаю по уму в statefulset у тебя мастер всегда - номер0, а дальше сколько угодно реплик. А в твоем случае если всё равно динамический сервис, то тебе от statefulset какой бонус? Может тебе обычный set и сервис на probes тогда будет ок ?
Aleksandra
Etki
да не сказал бы, куб только поддерживает сервисы в поднятом состоянии, с разрывом сети он ничего не сделает
Anonymous
Ну с стейтфулсеты использую в основном для уверенности что их убьют последними при дележе ресурсов)
G72K
Anonymous
Ну и мелкие удобства типа фиксированной днс
G72K
burstable, best effort, guaranteeed
Anonymous
Среди всех Best effort их последними кильнут а на guaranteed у меня кластера не хватает)
Anonymous
Фиксированный днс как раз для драйвера а мастер нужен экспозить хттп
Anonymous
В общем спасибо за идеи, поковыряю
G72K
Anonymous
А хз я был уверен что да, почитаю
Anonymous
https://github.com/kubernetes/kubernetes/blob/master/pkg/controller/endpoint/endpoints_controller.go#L56
Anonymous
это работает щас?
G72K
работало в 1.7
G72K
в 1.8 выпилят кажется
🪰
Кто-нибудь юзает weave cloud? Впечатления плюсы минусы. Для деплоймента, например, мониторинга. Мне показалось он слишком много жрет ресурсов для мониторинга.
Vitalii
weavescope жрёт неприлично много. У нас стоит в небольших кластерах просто как игрушка:)
Anonymous
Нашел кое что, вроде годнота, может кому полезно будет тоже
Роман
Подскажите, я имею связку grafana+prometheus. Пытаюсь смотреть графики за вчерашний день, но их нет. Где настраивается время хранения и что нужно настраивать: графану или прометей?
Maksim
прометей
Maksim
по умолчанию там два часа
Maksim
https://prometheus.io/docs/operating/storage/#settings-for-high-numbers-of-time-series
Anton
разве там retention не 2 недели?
Роман
У меня хранится 6 часов по умолчанию. Нашёл параметр storage.local.retention = 6h. Видимо это и есть оно. Вот, только он не понимает значение 3d. В часах что ли ставить? Или там какие-то другие допустимые значения?
No1
Роман
Maksim
Для начала просто убей selinux
Maksim
/etc/selinux/config
Zloy-Dobry
Просто плибей
Zloy-Dobry
Сененфорсе 0
Ivan
а можно подробнее, я не в теме видимо и такие выражения типа "сененфорсе 0" не понимаю )))
Sergei
Zloy-Dobry
Ivan
ок. ошибка в консоль валиться перестала.
но аписервер всё равно перезапускается (((
Ivan
в общем, думаю проблема в самом аписервере.
поскольку даже когда он поднимается, в логах на всех нодах валится:
Failed to list *v1.Node: Get http://127.0.0.1:8080/api/v1/nodes?fieldSelector=metadata.name%
(на немастерах, естественно, вместо лупбэка - айпишник мастера)
Ivan
т.е. открытый порт ничего не даёт - аписервер просто не работает...
Ivan
очень странно. вроде всё дефолтное, всё по мануалу...
какой то странный мануал у короси... дефективный видимо ))) без бубна невалиден)))
Maksim
ailed to list *v1.Node: Get http://127.0.0.1:8080/api/v1/nodes?fieldSelector=metadata.name%
Maksim
WTF??
Maksim
А всё)
Maksim
Ivan
ну это все ноды, включая мастер, ломятся на апи, чтобы себя зарегать
Maksim
это да)
Maksim
а что в логах ??
Maksim
и как вообще api ты поднимаешь? в контейнере или так?
Ivan
да, прям по мануалу
Ivan
там kubelet.service поднимается и ему указывается pod-manifest-path=/etc/kubernetes/manifests
Ivan
как обещают в мануале, оно само все ямлики по указанному пути читает и поднимает как бы в кубернете, но ещё без кубернета
Ivan
я этот замут не понимаю, но верю, ибо видел как оно таким образом поднималось
Ivan
правда это год назад было, версии были другими...
Роман
А вот интересно, кто-нибудь ставит кубер так, что аписервер, контроллер-менеджер и шедюлер как отдельные приложения? Не в контейнере. И вообще возможно ли это?
Роман
И нужно ли?)
Ivan
а они есть в таком виде? )))
Роман
Вот и мне интересно)
Ivan
я не нашёл
Роман
Вообще, исходники есть, можно как минимум собрать.
Ivan
собственно:
We're going to use a unique feature of the kubelet to launch a Pod that runs the API server. Above we configured the kubelet to watch a local directory for pods to run with the --pod-manifest-path=/etc/kubernetes/manifests flag. All we need to do is place our Pod manifest in that location, and the kubelet will make sure it stays running, just as if the Pod was submitted via the API. The cool trick here is that we don't have an API running yet, but the Pod will function the exact same way, which simplifies troubleshooting later on.
Ivan
особенно мне понравилось про устранение неполадок.
я прям реально оценил... когда оно падает и даже логов нет о причине падения
Aleksey
Роман