𝚔𝚟𝚊𝚙𝚜
Удалять старые baremetal и заводить новые
Я так и делаю на baremethal, очень удобно https://kubernetes.io/blog/2018/10/02/building-a-network-bootable-server-farm-for-kubernetes-with-ltsp/
𝚔𝚟𝚊𝚙𝚜
👍 У меня только MAAS
О, расскажи и как тебе MAAS?
𝚔𝚟𝚊𝚙𝚜
Он умеет diskless?
bebebe
👍 У меня только MAAS
да в принципе норм. прикрутил его к CI/CD который сделан вокруг kubernetes при изменении, тестируется на gcp/aws/azure, и заодно проверяется на baremetal пришлось написать свой power management для железок без ipmi и вообще remote power control, железки бутаются по wake on lan, и ребутаются через ssh врпинципе оно работает уже 2 года, но переодически, раз в сезон MAAS нужно перезагружать, в нем как-то ОЧЕНЬ сильно ломается iscsid который раздает диски. diskless не пробовал и вообще туда не копал, из CI хожу к MAAS через rest, все ок, плоская модель прав :/
Andor
👍 У меня только MAAS
Фига ты модный
bebebe
я тут решил дома собрать k8s из говна и палок поставил maas и запровижинил 3 ноды на baremetal и kubespray развернул k8s
bebebe
bebebe
по этой же схеме поднял домашний кластер.
Alexander N.
коллеги, подкиньте идею, есть задача - разворачивать большую и толстую(20гб) субд(постгре) на тесты в кол-ве N экземпляров за максимально короткое время. При этом данные чтобы хранились в PV на ceph. Про снапшоты читал, но пока слишком сырое это добро. Есть шальная мысль предподготавливать PV (в кол-ве N штук) и потом монтировать в нужные поды, но это тот еще костыль
bebebe
там где-то вверху по ключевым словам "из говна и палок" есть подробности
Alexander N.
20гб можно и копернуть
можно, но долго, в идеале не больше пары минут должно занимать
Andor
Если никак, то pgloader в помощь
Alexander N.
Сделай просто имадж на 20гб
щас так и есть, но если под удаляется - данные идут лесом
bebebe
ну сделайте так, что-бы pvc не удалялся...
Alexander N.
ну сделайте так, что-бы pvc не удалялся...
пока просто имадж заливается без pvc, мы ж не можем директорию из контейнера запихать в pv в процессе старта
bebebe
пока просто имадж заливается без pvc, мы ж не можем директорию из контейнера запихать в pv в процессе старта
видимо я задачи до конца вашей не понимаю, хранить эталонный образ с дампом от живой psql? и подсовывать разным подам, что-бы они быстрее поднимались? после тестов, удалить pod, но что-бы pvc оставалась?
Alexander N.
видимо я задачи до конца вашей не понимаю, хранить эталонный образ с дампом от живой psql? и подсовывать разным подам, что-бы они быстрее поднимались? после тестов, удалить pod, но что-бы pvc оставалась?
Да все просто, есть задача делать EaaS, на данный момент их 12, нужно чтобы среда поднималась с подготовленной базой, и жила столько - сколько нужно, не теряя данные при пересоздании подов
Andor
А сколько у вас заливается 20гб дамп базы?
Alexander N.
одна из идей - это как раз делать заранее подготавливать пул PV с данными и монтировать его при старте пода с базой
Alexander N.
на все про все минут 10-12 уходит
bebebe
Да все просто, есть задача делать EaaS, на данный момент их 12, нужно чтобы среда поднималась с подготовленной базой, и жила столько - сколько нужно, не теряя данные при пересоздании подов
это сделать возможно. например такое умеет helm из коробки. при деплойменете вашего вокрлоада, можно указать что-бы PVC были переиспользованы (и при удалении workload'a) они не удалялись. Можно это сделать и руками. Тут скорее вопрос, ваши тесты меняют саму базу? и если да, то для следующих тестов она уже не пригодна?
Alexander N.
Предлагаю забить
с радостью бы забил, руководство не дает))
Andor
Попробуй более быстрые способы загрузки дампа
Andor
Но к куберу это мало отношения имеет
Etki
щас так и есть, но если под удаляется - данные идут лесом
В смысле идут лесом, если они в образ вшиты?
Alexander N.
В смысле идут лесом, если они в образ вшиты?
имеется в виду данные, которые были внесены уже после старта пода (добавили данные к примеру в продукт для теста)
Andor
Ну то есть ты конечно можешь готовить pv заранее и монтировать уже их, а новые готовить в бэкграунде Но я б сначала попробовал тупо раскатывать дампы быстрее
bebebe
да, меняют, поэтому одна база применима только в рамках одной среды, и то ее могут дропнуть в любой момент
прикрутите к вашему процессу автоматику, которая держит всегда N+5 pvc наперед. либо если позволяет ваш сторадж, то нарезайте из снапшотов (тут у меня экспертиза фсё)
Dmitry
Если есть любовь к извращениям - hostpath и снапшоты lvm
Alexander N.
Dmitry
ну я про извращения на хосте - перед созданием контейнера с host path делать в ту директорию монтирование lvm snapshot Если уже костыли под задачу - то делать это по-серьезному
bebebe
пинить postgres к ноде с lvm'ом и оттуда пускать с разных снапоштов
bebebe
впринципе да.
Andor
Ну можно в инит-контейнере стягивать архив с файлами базы (не sql дамп) и просто рас-tar-ивать его в директрию pgdata
Andor
Это наверняка будет быстрее чем заливка дампа
Andor
А нельзя использовать одну субд с разными базами внутри?
Andor
Если можно, то можно просто create database NAME template OLDNAME; что тоже работает быстрее чем дамп
Alexander N.
А нельзя использовать одну субд с разными базами внутри?
нет, изначальное требование - полная независимость сред друг от друга
Andor
Потому что хочется или это бизнес требование?
Alexander N.
там еще и эластик и редис и раббит параллельно поднимаются и еще куча всего
Alexander N.
требование
Andor
Это для всяких тестов или это прод?
Mikhail [azalio]
А кто-нибудь sysdig использует для мониторинга кубера?
Alexander N.
тесты
Andor
Тогда это тем более выглядит как хотелка
Andor
И обсуждать запрещено? :)
Andor
На одной из прошлых работ был подобный кейс с постгресом для тестов, делали через создание бд из темплейта
Alexander N.
я пытааалсяяя (С) но каг бэ банк и все такое...
Andor
И даже объём базы был сравнимый, гигов 30-40
Alexander N.
И даже объём базы был сравнимый, гигов 30-40
про более быстрые способы restore? я так понимаю речь о -j core_count? или есть еще какие-то отработанные вещи?
Andor
про более быстрые способы restore? я так понимаю речь о -j core_count? или есть еще какие-то отработанные вещи?
ну тогда (года 4 назад) самым быстрым решением был проект с названием pgloader вроде бы
Andor
но возможно я путаю
Andor
но мы тогда остановились на create database NAME from template ORIGINAL
G72K
щас так и есть, но если под удаляется - данные идут лесом
Значит база ок живёт на overlayfs? Можно свой собрать тогда, будет копироваться все равно, но растянуто по времени. Базовый слой монтировать в read-only без проигрывания журналов, тогда ни байтика на блочное устройство не запишется :)
Alexander N.
Все равно самый быстрый вариант получается подготавливать pv заранее
Alexander N.
Там время только не запуск базы
Alexander N.
*на
Andor
ну это будет то же решение, что и с инит-контейнером, но заранее
Alexander N.
От части да, Но я не заранее не знаю в какой нс пихать базу
Alexander N.
Имя нс появляется в процессе сборки приложения
Andor
pv же не привязаны к неймспейсам
Alexander N.
Да я чет подумал если просто весь контейнер заранее готовить )
PsyDebug
Все равно самый быстрый вариант получается подготавливать pv заранее
Я сделал так: полностью упаковал все файлы базы, создаю pv, запускаю job, который маунтит себе этот pv, стягивает с артифактори упакованные файлы базы, распаковывает, кладет куда надо, затем стартует под с самой базой, куда примаунчены ранее распакованые файлы
PsyDebug
Вливка дампов или упаковка самой базы в имадж- крайне не удачное решение
Alexander N.
Вливка дампов или упаковка самой базы в имадж- крайне не удачное решение
А чем толстый имадж плох кроме объема трафика и времени?