Сергей
не, ну почему какаха.. ой
yolkov
Не получится, потому что в php-fpm всегда есть один воркер, который не PID 1. Т.е. всегда будет не-PID1, который может сдохнуть по OOM и никак не оповестить об этом.
парси рсислог или журналд логи ООМ на нодах, выгрепывай хеши пода, контейнера из сообщения про ООМ и потом по АПИ куба узнавай какой это был под
yolkov
А ещё лучше залить все логи в ёлку и искать в ней, хотя греп быстрее зачастую.
реализация дело вкуса, мы так и делали, писали в еластик и отдельный демон искал в эластике события и вытаскивал метаинфу из куб апи и алертил
Andrey
Нит, я напишу говнопатч в cAdvisor на новогодних праздниках.
George
Нит, я напишу говнопатч в cAdvisor на новогодних праздниках.
Сделай, пожалуйста, так, чтобы он не грел воздух ? Жрет 20% ЦПУ - не меньше
Andrey
Чёт не замечал такого.
George
И как часть kubelet?
Мне в первую очередь - как стендэлоун штука на убунту 16.04 + докер 18.06
Andrey
А ты perf record'ом смотрел, чем он занимается?
Andrey
Бле, а я тут сижу на 1.10. А как они теперь метрики выгребают?
yolkov
пока не понял, или его или только УИ выпиливают
yolkov
https://kubernetes.io/docs/tasks/debug-application-cluster/resource-usage-monitoring/
yolkov
да, похоже только УИ
Andrey
https://github.com/kubernetes/kubernetes/pull/65707
Andrey
Да.
Andrey
Так что говнопатч в силе. Если силы будут и жена не побьёт.
Petr
Вот недавно начал вкатываться в infrastructure as code и выделил для инфраструктуры отдельный гитовый репозиторий, где храню все ресурсы кластера. Но вот проблема в том, что у нас есть бекенд и несколько фронтендов. Каким образом лучше всего выкатывать обновления сервисов в кластер? Если в ci бекенда на каждый билд запускать деплой в репозитории кластера со свежей версией докер имейджа бекенда, то очевидно что может произойти так, что самая свежая версия фронта еще не готова к этим изменениям и на деплое завалится. Также рассматриваю вариант просто руками менять версии имейджей в репозитории кластера и пока эта идея мне кажется наилучшей, но все равно есть ощущение, что можно сделать лучше и автоматизированнее
Rainbow
> свежая версия фронта еще не готова к этим изменениям и на деплое завалится. Это забота разработчиков и на их отвественности. Тоже самое что и с миграциями, они не должны ломать текущий код.
Petr
> свежая версия фронта еще не готова к этим изменениям и на деплое завалится. Это забота разработчиков и на их отвественности. Тоже самое что и с миграциями, они не должны ломать текущий код.
Хм, и правда, звучит осмысленно. У нас пока просто продакшена нет, разработка весьма активная и иногда что-то в апи или требованиях может поменяться, поэтому придерживаться обратной совместимости порой невозможно. Думал может есть какое решение
Vadim
Вот недавно начал вкатываться в infrastructure as code и выделил для инфраструктуры отдельный гитовый репозиторий, где храню все ресурсы кластера. Но вот проблема в том, что у нас есть бекенд и несколько фронтендов. Каким образом лучше всего выкатывать обновления сервисов в кластер? Если в ci бекенда на каждый билд запускать деплой в репозитории кластера со свежей версией докер имейджа бекенда, то очевидно что может произойти так, что самая свежая версия фронта еще не готова к этим изменениям и на деплое завалится. Также рассматриваю вариант просто руками менять версии имейджей в репозитории кластера и пока эта идея мне кажется наилучшей, но все равно есть ощущение, что можно сделать лучше и автоматизированнее
Посмотрите как сделано в истио - кратко говоря, разные версии бекендп роутят на соответствующие версии фронтенда - и все это хранится в отдельной репе, задается через CRD
Rainbow
> Думал может есть какое решение Не морочить себе голову. Заведите какую-то ветку вроде production, с которой будут билды собираться и все. Проблемы совместимости - проблемы человека, который merge делает.
Олег
как из пода получить IP/hostname соседних подов? или их DNS из куба
Олег
в том числе
A
в том числе
Что значит тогда соседние?
Олег
нужно получить список хостов и IP всех подов в нейспейсе
Олег
из контейнера
Олег
можно бы было сделать через kubectl, но к нему из контейнера нет доступа
A
можно бы было сделать через kubectl, но к нему из контейнера нет доступа
Нет, конечно, потому только писать самому прилагу на голанге и сайдкардом каким нибудь, больше вариантов нет
Олег
а какие еще есть варианты, чтобы в чарт прокинуть эти IP/hostname?
Олег
объединить 3 ноды кролика
Олег
в кластер
Никита
Как хедлес их экспозишь, и получаешь dns-запись, которая ресолвится в ip контейнеров.
Никита
можно чуть больше подробностей?
Почитай про сервисы в кубернетесе, есть такой тип сервиса -- headless.
Mikhail
Всем привет. Есть живые пользователи vmware vcloud pcs? Хотелось бы услышать реальные отзывы и плюсы/минусы по сравнению с чистым кубком.
Denis
а какие еще есть варианты, чтобы в чарт прокинуть эти IP/hostname?
Есть плагин для rabbitmq в k8s. Зайди в его репозиторий и там будут примеры, как правильно развернуть все
Denis
репа кролика или k8s?
https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s
Denis
Ну вот же
Denis
Там даже статья на хабре была относительно недавно про это чудо
Олег
спасибо, сейчас гляну
Denis
спасибо, сейчас гляну
гуглится "rabbitmq kubernetes")) https://habr.com/company/true_engineering/blog/419817/
Олег
это я уже нашел
Denis
это я уже нашел
Ну вот эта статья отсылка к этому плагину. В статье даже все подробнее расписано, чем в репе
Олег
Ну вот эта статья отсылка к этому плагину. В статье даже все подробнее расписано, чем в репе
спасибо большое ... в статье как раз был тот самый момент, которого не хватало
George
гуглится "rabbitmq kubernetes")) https://habr.com/company/true_engineering/blog/419817/
Не увидел тестов на отказоустойчивость
Denis
Не увидел тестов на отказоустойчивость
Я пробовал ронять кластер, в плоть до 1 экземпляра. Все работало
George
А если Нетворк латенси большой? А если пакеты теряются? А если часы сбились ?
Denis
А если Нетворк латенси большой? А если пакеты теряются? А если часы сбились ?
Протестируйте, а потом нам отпишитесь о результатах, еще и ишью кинете на гитхаб разрабам плагина.
George
Т.е., повторюсь, интереснее кейсы "не выключили ноду" и посмотрели, что все ок. А прям нормальное исследование. Т.к. подгореть может в любой момент
George
Протестируйте, а потом нам отпишитесь о результатах, еще и ишью кинете на гитхаб разрабам плагина.
Ну, мне просто нравится подход. "Мы запустили хх в кубе в HA режиме". А где анализ граничных случаев? Почему, как пользователь, я должен этим заниматься. Т.е. ок - как ОПС - не вопрос, выберу адекватное решение под конкретную задачу и аргументируют выбор, но все остальное. Кхм. Детсад какой-то. Но обычно, конечно, полыхает по человеческому фактору...
George
Вспомним ту же историю с gitlab database removal specialist
Sergey
не понял а причем тут пользователь
Sergey
ты знаешь много пользователей которые кластеризуют кроля в кубере?
George
не понял а причем тут пользователь
"Пользователь куба и готовых операторов, хельма etc"
Sergey
если ты не заметил, то кубер это не про "искаропки":D
George
ты знаешь много пользователей которые кластеризуют кроля в кубере?
Я вообще уже не вижу пользователей кроля поблизости
Sergey
тут нет пользователя
George
если ты не заметил, то кубер это не про "искаропки":D
Да задолбали парни, которые куб, потом (черт забыл, как там цеф поверх куба - riak?), А потом паника - мы все просрали
Sergey
а чем задолбали то, их проблемы, не твои:)
Sergey
статья скорее обзорная чем подробнейшая официальная документация со всеми пограничными случаями и тестами под энтерпрайз\whatever
Denis
Ну, мне просто нравится подход. "Мы запустили хх в кубе в HA режиме". А где анализ граничных случаев? Почему, как пользователь, я должен этим заниматься. Т.е. ок - как ОПС - не вопрос, выберу адекватное решение под конкретную задачу и аргументируют выбор, но все остальное. Кхм. Детсад какой-то. Но обычно, конечно, полыхает по человеческому фактору...
А, если вы имеете в виду, что типа задолбали чуваки юзать кейсы, которые не поими как будут себя вести в критические моменты, то согласен о части. Я заюзал у себя это решение, предварительно почитав ишью на гитхабе и т.д. Что-то будет ломаться, буду решать и находить решения.
George
тут нет пользователя
Админ - не пользователь куба?
Sergey
нет
George
Мне от этого и страшно
Sergey
Админ != Юзер