Ivan
но это и так понятно, что оно будет refused - порт-то не замапился
Роман
Подскажите по графане/прометею. Хочу выполнить такой запрос: node_load1{kubernetes_node="$nodename"} / count by(job, instance)(count by(job, instance, cpu)(node_cpu{kubernetes_node="$nodename"})) По отдельности (до знака "/" и после него) - запросы возвращают значения. Строка целиком - нет. Как одно разделить на другое?
Anonymous
сори что врываюсь в обсуждение другого вопроса... просто опубликую свой вопрос а потом вдруг кто прочтет и ответит :) надеюсь не помешаю: короче, есть база из трех инстансов: один из них мастер в который надо писать, два слейва 1) все это запускается через стейтфулсеты 2) мне нужен сервис который будет роутить на актуальный мастер я придумал только сделать рединесс-проверки на каждом поде и тот который мастер будет ее выполнять - тогда будет отдельный сервис обращения к которому всегда будут посылать на текущий актуальный мастер проблема в том что рединесс так же используется для запуска подов... то есть следующий под в стейтфулсете не запустится пока предыдущий не скажет что он готов какой может быть воркараунд?
Logan
тут либо пусть дрова определяют (так делает монго) либо хапрокси и аналоги
Logan
если у тебя монго – то определять активного мастера и конфиг должны драйвера!
Anonymous
они могут выбраться между собой
Logan
а зачем тебе держать мастер и не мастер в одном set если они такие разные
а как иначе? Общий сет – мастером станет кто-то один
Anonymous
мб наивный вопрос, но как смысл скейлить поды с node.js беком в рамках одной ноды?
Aleksandra
они могут выбраться между собой
мастер выбирающийся изнутри - это какой-то в целом плохой сценарий. В принципе можно хуком каким-нибудь label менять у пода, а сервис вешать на эту метку
Anonymous
neo4j весь такой
Aleksandra
насколько я понимаю по уму в statefulset у тебя мастер всегда - номер0, а дальше сколько угодно реплик. А в твоем случае если всё равно динамический сервис, то тебе от statefulset какой бонус? Может тебе обычный set и сервис на probes тогда будет ок ?
Etki
мастер выбирающийся изнутри - это какой-то в целом плохой сценарий. В принципе можно хуком каким-нибудь label менять у пода, а сервис вешать на эту метку
Это классический сценарий. Если мастер по каким-то причинам недоступен, кто-то должен встать на его место, чтобы продолжить работу. даже если построить над этим специальный решающий механизм, этот механизм должен ровно так же состоять из нескольких master-eligible узлов (иначе выход из сети этого механизма уронит вообще всё), и всё попадает в ту же западню
Etki
да не сказал бы, куб только поддерживает сервисы в поднятом состоянии, с разрывом сети он ничего не сделает
Anonymous
Ну с стейтфулсеты использую в основном для уверенности что их убьют последними при дележе ресурсов)
Anonymous
Ну и мелкие удобства типа фиксированной днс
G72K
burstable, best effort, guaranteeed
Aleksandra
Ну и мелкие удобства типа фиксированной днс
так тебе как раз фиксированный dns получается не нужен, потому что надо к динамическому мастеру подключаться, значит к сервису
Anonymous
Среди всех Best effort их последними кильнут а на guaranteed у меня кластера не хватает)
Anonymous
Фиксированный днс как раз для драйвера а мастер нужен экспозить хттп
Anonymous
В общем спасибо за идеи, поковыряю
G72K
Среди всех Best effort их последними кильнут а на guaranteed у меня кластера не хватает)
ну я к тому что, по-моему statefulset не влияет на то, кого прибьют первым
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
работало в 1.7
а че у меня не работает :)
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. В часах что ли ставить? Или там какие-то другие допустимые значения?
Ivan
Всем привет! Помогите пожалуйста разобраться, почему у меня не поднимается kube-apiserver Pod Делаю по этому мануалу: https://coreos.com/kubernetes/docs/latest/deploy-master.html#set-up-the-kube-apiserver-pod после systemctl start kubelet система начинает грузиться по процу и в течение минут 3-5 полносью зависает. при этом в логах вот это: https://gist.github.com/anonymous/fa72b7d156ca4e6a6d0171a5d2aeebf8 а в netstat -tpln это: https://gist.github.com/anonymous/7b6634ae4a70d4a08eb0fa0051805702
Всем привет! Продолжаю биться с апи-сервером)) добился того, что он поднимается, начинает слушать порт, но недолго. затем он падает. в логах пишет - типа под упал, мы его перезапускаем. но больше ничего осмысленного в логах нет (всё тоже, что и вчера). соотношение примерно такое - поднимается секунда на 30, потом минут 8 лежит. Единственное осмысленное - при этом в консоль сервака валит такую строчку: SELinux: mount invalid. Same superblock, different security settings for (dev mqueue, type mqueue)
Maksim
Для начала просто убей selinux
Maksim
/etc/selinux/config
Zloy-Dobry
Просто плибей
Zloy-Dobry
Сененфорсе 0
Ivan
а можно подробнее, я не в теме видимо и такие выражения типа "сененфорсе 0" не понимаю )))
Zloy-Dobry
setenforce 0
Глаголиш
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
А всё)
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
особенно мне понравилось про устранение неполадок. я прям реально оценил... когда оно падает и даже логов нет о причине падения
Роман
эт лучше сюда вот @metrics_ru
Спасибо. Добавлюсь.