Anonymous
:) простите, не выдержал
Vitaliy
да, смешно.
Anonymous
зайти в консоль пода можешь?
Vitaliy
в dmesg ничего подозрительно не заметил, ничего про ожидание освобождения eth0 и тп
Vitaliy
про распухший докер не понял, не обратил внимание, ноду ребутнул. помогло, н оне решение же
G72K
Вобщем гошечка не умела vfork , а без него если памяти на ноде мало, то форк не работал без кручения vm.overcommit_memory в сторону "разрешать всегда" (кажется =2), докеру для ps (и вообще почти любых команд) нужно форкаться, т.к. гошечка не умеет горутины к тредам прибивать, в итоге минус на минус дают жопу с зависшим докером. Но может у вас и не это было :)
Vitaliy
хм... спасибо, попробуем
Vitaliy
хотя, про память это не оно. с памятью все было ок на этот момент.. занято не более 20%
bebebe
Vfork уронил мак ос
bebebe
Ноут ребутнулся)))
bebebe
С ошибкой написанной на разных языках
bebebe
Так эпично у меня мак не падал ещё)))
bebebe
20 минут назад :)
Denis
Люди, подскажите, есть кто юзает Gitlab в кубере?
Denis
у меня пути реп. вот так вот выглядят
Denis
http://gitlab-78bf779845-gfg2x/denis/test.git
Denis
подскажите как изменит параметры поды без его пересоздания?
Etki
Скорее всего никак. Но что подразумевается под изменением параметров пода?
Andrei
Приложение должно уметь перечитывать env/config file/consul/etcd. Куб доставляет свежие секреты/конфиги, а дальше не его забота
Denis
Скорее всего никак. Но что подразумевается под изменением параметров пода?
Мне нужно к примеру поправить переменные знанчения в поде к примеру.
Andrei
Denis
Confd, если мы говорим о настройках приложения
понял. я думал может есть что то похожее на docker-compose up -d —build
Denis
а кто знает в calico поды как резолвят друг друга?
Denis
по умолчанию это не работает
Dmytro
ну... можно, я это сделал мягко, но класстер существует, для его разработки. И вариант с увеличением памяти на нодах, не подходит, т.к. они дороже, а поэтому нужно использовать всю свободную память и он будет это делать, т.к. он типа "думает о рентабельности проекта")
если он хочет юзать всю память ноды т.к. "рентабельность" то может всем в команде будет легче если его уволить? Явно квалификация у него не очень если он не понимает зачем нужна свободная память всегда на ноде и какие последствия для приложения при включении свопа
Dmytro
Для памяти надо ставитт requests == limits, т.к. память не резиновая , в отличии от процессора
да и для проца не помешает, иначе будут непонятные паузы в работе приложения (хотя они и так могут быть - смотря какие квоты и настройки CFS)
Dmytro
ну и? суть вопроса в том, что человеку хочется всю свободную память, что есть на ноде. У него нет внутреннего софтового лимита. Если я поставлю определённое количество - приложение по достижению этого числа будет тупо дропаться.
ну и все, пусть менеджат память правильно в приложении, а какие еще варианты? ну ок выжрал он память системы и система либо зависла либо если стоит panic on oom и reboot on panic то ребутнулась - это лучше разве?
G72K
да и для проца не помешает, иначе будут непонятные паузы в работе приложения (хотя они и так могут быть - смотря какие квоты и настройки CFS)
вроде паузы как раз от limit выставленного, при превышении квоты. без квоты искусственных пауз нет
Dmytro
хммм даже в случае overcommit когда другие процессы выжрали все ядра?
Dmytro
имхо всем подам надо ставить requests == limits для памяти и проца и тогда будет ожидаемое поведение всегда
Andrei
Глупый вопрос: есть подсеть, к примеру /27, чем можно организовать аналог expose deployment в gke, но на bare metal? Чтобы ip из пула назначался автоматом. Руками понятно: nodeport и node selector для сервиса. (про metallb читал)
Dmytro
история про тимлида мне напоминает моего бывшего начальника - он напихал в кронтаб говна что каждую минуту стартовало 600 процессов а потом удивлялся что это линукс не может столько процессов сразу запустить? Человек с тайтлами CTO и Head of Engineering
Dmytro
Глупый вопрос: есть подсеть, к примеру /27, чем можно организовать аналог expose deployment в gke, но на bare metal? Чтобы ip из пула назначался автоматом. Руками понятно: nodeport и node selector для сервиса. (про metallb читал)
а можно чуть поподробнее? я не настоящий сварщик, но насколько помню calico и romana могут анонсить по BGP айпишник, т.е. можно сделать повесить сервис на айпи и потом его двигать с ноды на ноду если что
Paweł
У меня тоже такой косяк был, так то джобы хоть и много но в разное время запускались, а вот после перезапуска машины резко все вместе стартовали и падало всё...
Andrei
а можно чуть поподробнее? я не настоящий сварщик, но насколько помню calico и romana могут анонсить по BGP айпишник, т.е. можно сделать повесить сервис на айпи и потом его двигать с ноды на ноду если что
Я до этого гуглом пользовался, там при expose deployment сервис вывешивается наружу и ему присваивается внешний же ip. Про bgp хорошо, но чую hetzner будет против) (сеть да, calico) Про romana читал, но палкой не тыкал.
Dmytro
не уверен что значит romana "для network security" - у calico тоже есть network policies
Andrei
Речь о Romana VIPs? Оно использует MetalLB, он ещё в альфе. Кто-то уже юзал?
Dmytro
600 процессов в одну секунду стартовали - нода умирала
Dmytro
в чате есть люди кто юзают romana и анонсят айпишники с помощью calico через BGP - пусть лучше они ответят, а то я сейчас буду рабиновичем который напел
Andrei
Логично, спасибо! :)
Dmytro
кстати, раз зашла речь про сеть - скину статью интересную из другого чата https://blog.hasura.io/debugging-tcp-socket-leak-in-a-kubernetes-cluster-99171d3e654b
Dmytro
Спасибо, очень доступно объяснили
у меня вот 24 инсталляции 8 разных приложений в 5 разных кластерах, плюс всякие мониторинг приложения один на кластер и т.п. - без хелма я бы не знаю что делал
G72K
хммм даже в случае overcommit когда другие процессы выжрали все ядра?
я глубоко не смотрел, но мне кажется если limit стоит, то по превышении квоты, процесс снимают с процессора на сколько-то там миллисекунд и ничего его туда раньше вернут не может. если же нету limit, но процессор всем нужен, то наш процесс ждет конечно и тоже не выполняется, но эта задережка может быть и меньше, если другие процессы добровольно снялись с процессора (достигли preemption point)
Dmytro
ага, ну то есть примерно как я и думал - надо всем раздавать requests == limits и тогда хотя бы паузы будут от самого приложения а не от шумных соседей
G72K
600 процессов в одну секунду стартовали - нода умирала
у меня как то было эпичное замедление, когда много разом стартовало. репу долго чесал, оказалось энтропии нехватало для рандомизации стэка или чего-то там :)
Dmytro
и тогда уже это скорее проблемы девов сделать процессы/потоки так чтобы не выжирали квоты раньше времени если n_proc = requests= limits
Andrei
https://github.com/cloudnativelabs/kube-router
А оно умеет без bgp, просто выдавать ip из заданной подсети?
Andrei
Спасибо! Почитаю завтра
Andrei
А никто, случаем, не в курсе как hetzner относится к запросам вида «давайте настроим bgp”? У них из ближайшего только floating ip есть, который через костыли можно к кубу прикрутить
G72K
кстати, раз зашла речь про сеть - скину статью интересную из другого чата https://blog.hasura.io/debugging-tcp-socket-leak-in-a-kubernetes-cluster-99171d3e654b
хорошая статья. с некоторых пор если непонятная херня творится, иду смотреть в netdata, там куча проверок на подобные штуки
G72K
вот например алерт на случай из статьи: https://github.com/firehol/netdata/blob/master/conf.d/health.d/tcp_mem.conf
Andrei
«Раз уж речь зашла про сеть» (с) Есть что почитать на тему закрытия нод фаерволом? Без куба был автосписок правил из chef + списки серверов в ipset. А тут вопрос как зарезать всё, оставив доступ только своим ip и 80/443 в паблик, не похерив правила куба при обновлении своих
Andrei
А как это поможет закрыть ssh и прочие сервисы?
G72K
а, вы про штуки вне куба. ну не запускайте их)) ssh можно хоть в инет выставлять впринципе
Dmytro
(ссш где ключи а не пароли наверное имеется ввиду)
Dmytro
да это в рабочем слаке
Denis
Всем привет!
Denis
Поделитесь пожалуйста своим опытом, как вы организовываете высокую доступность баз данных в k8s?
Mikhail [azalio]
Поделитесь пожалуйста своим опытом, как вы организовываете высокую доступность баз данных в k8s?
В основном держат вне кубера. Тех кто держит внутри называют героем.
Denis
В основном держат вне кубера. Тех кто держит внутри называют героем.
Тоже думал об этом. Я как понимаю базы данных нужно выносить к примеру в облачное хранилище по типу AzureDisk или AWSElasticBlockStore и отдавать как PersistentVolumeClaim подам с базами данных?
Denis
В основном держат вне кубера. Тех кто держит внутри называют героем.
Просто у нас нет ресурсов что бы поднять свой кластер ceph и т.д
Mikhail [azalio]
Т.е базы данных поднимать вне кластера k8s?
Зависит от важности данных и объема. Но в общем случае так.
Denis
Зависит от важности данных и объема. Но в общем случае так.
Если выносить на свое железо , то на этом железе точно так же нужно будет организовать высокую доступность этих баз данных. Это хорошее решение на мо взгляд когда есть свой собственный мини-цод или дполнительные облачные инстансы, на которых собственно и можно развернуть все экземпляры БД.
Denis
Зависит от важности данных и объема. Но в общем случае так.
Мне бы хотелось хранить сами базы данных в облаке и отдавать их подам как постоянные диски. Это рабочее решение?
Denis
Кстать у Ажура есть дата-центы в России?
Сергей
Кстать у Ажура есть дата-центы в России?
Нет, и в ближайшее время не будет