Sergey
vault?
И его тоже
Alex
И его тоже
а что еще есть интересного для менеджмента секретсов?
Anonymous
Не держим секреты в кубер секретах
а как у вас сервисы коннектятся друг к другу?
Nikolay
vault - это вот это? https://www.vaultproject.io/
Anonymous
у меня вот сервисы для staging/prod каждый в своем неймспейсе тип /api-staging /api-prod у каждого сервиса есть набор connection strings до редисов и монг которые лежат в /staging /prod сервисы получают стринги к ним из env сейчас я их пробрасываю через секреты
𝚔𝚟𝚊𝚙𝚜
Rainbow
Я в git-crypt крипчу, и храню прямо в git
сложно потом менять же
Alex
кстати, видел что-то такое для кубера
Rainbow
точнее проблема, что через год забываешь что где
Nikolay
Оно
спасибо, сегодня вместо сна у меня знакомство с продукцией hashicorp -_-
Alex
https://github.com/bitnami-labs/sealed-secrets
Alex
@kvaps вот эту штуку видел как раз
Rainbow
ты уже любишь hcl?
тут будет комент про json
Alex
а сейчас нашел более хипстерский https://github.com/shyiko/kubesec
Andor
не про сам json, а про jsonnet
Rainbow
И не забывать, что там внутри go и что даже если написано "Spec", можно писать "spec". go хавает
Nikolay
ты уже любишь hcl?
не так быстро :D
Anonymous
а что небезопасного хранить конфиги в секретах? вы тип их храните в шифрованном виде и в рантайме декриптите?
𝚔𝚟𝚊𝚙𝚜
точнее проблема, что через год забываешь что где
Ну у меня в ksonnet все, в любом проекте можно заинклюдить переменную из secrets.libsonnet, а любой файл с таким именем по маске автоматически шифруется
𝚔𝚟𝚊𝚙𝚜
в гите не разместишь =/
Кстати git-crypt и по passphrase умеет шифровать, то есть для CI его можно просто как secret variable передать
Vadim
Шифруй etcd @ закрывай доступ к гиту с секретами
Vadim
Это есть в опеншифт?
Шифрование etcd давно везде есть
Alex
Это есть в опеншифт?
вроде даже kubeadm по дефолту везде юзает сертификаты
𝚔𝚟𝚊𝚙𝚜
Alex
Я так понимаю это про хранение
хм, который персистентный?
𝚔𝚟𝚊𝚙𝚜
Ну у ваулта все секреты в зашифрованном виде хранятся, в etcd плейнтекстом, но в base64 насколько я понимаю
Vadim
https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/
Andor
несмотря на хашикорп
Alex
https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/
блин, надо будет прочитать больше документации с офф. сайта ) Очень круто, спасибо!
𝚔𝚟𝚊𝚙𝚜
https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/
Прикольно, но встает вопрос, где хранить decryption key?
Vadim
в волте ещё и разграничение прав получше будет имхо
Насколько я понял оно юзается для легаси + еще моднейшие облака. А если все в кубере, то RBAC хватит
Vadim
Прикольно, но встает вопрос, где хранить decryption key?
В KMS или в виде куберовского объекте же, главное ротейтить почаще
𝚔𝚟𝚊𝚙𝚜
Насколько я понял оно юзается для легаси + еще моднейшие облака. А если все в кубере, то RBAC хватит
Там же основная идея, что девелопер не имеет доступа к секретам, а приложение получает их автоматически
𝚔𝚟𝚊𝚙𝚜
Хотя в принципе и в кубе можно отобрать get к секретам
Vadim
Даешь девелоперу роль view, а запускаешь через service account - то же самое
𝚔𝚟𝚊𝚙𝚜
ваулт не нужен
𝚔𝚟𝚊𝚙𝚜
xD
Andor
и секреты не нужны
Andor
да и кубер, чо уж :)
Nikolay
да IT вообще бесполезно. вон, когда два года назад все сдохли от Пети, MAERSK неделю на бумажном документообороте работали и ни одного контейнера не потеряли. зачем IT - не ясно :D
Denis
А подскажите пожалуйста про кейсы работы и потенциальные риски в следующем случае. К примеру у меня есть таже postgres или какая то иная база, которую мы держим single node (без репликаций и всего такого) И мы заводим её в куб как deployment + pvc (ReadWriteOnce) + в deployment stattegy говорим replica 1 \ maxSurge 1 \ maxUnavailable 1. Я ожидаю что в случае падения ноды. репликейшн контроллер зашедулит под на другую ноду и примонтирует том туда. И никаких сайд эффектов не случится (кроме потенциальных проблем со стейтом базы после падения, и невозможности стартануть новому поду) Есть ли тут ошибки \ подводные камни ?
Puma
А том на цефе?
Mark ☢️
ТРИГГЕРЕД
𝚔𝚟𝚊𝚙𝚜
А подскажите пожалуйста про кейсы работы и потенциальные риски в следующем случае. К примеру у меня есть таже postgres или какая то иная база, которую мы держим single node (без репликаций и всего такого) И мы заводим её в куб как deployment + pvc (ReadWriteOnce) + в deployment stattegy говорим replica 1 \ maxSurge 1 \ maxUnavailable 1. Я ожидаю что в случае падения ноды. репликейшн контроллер зашедулит под на другую ноду и примонтирует том туда. И никаких сайд эффектов не случится (кроме потенциальных проблем со стейтом базы после падения, и невозможности стартануть новому поду) Есть ли тут ошибки \ подводные камни ?
Базы как StatefulSet заводить надо, если заводить их как deployment то есть шанс при перезапуске потерять данные. Так как сначала будет создаваться новый под, затем будет удаляться старый. Вторая проблема что при смерте ноды - под сам не переедет, а пометится как Unknown и будет висеть. Чтобы под переехал нужно чтобы был cloud-provider или fencing который в случае чего гарантированно снесет ноду и удалит ее из кластера.
Mark ☢️
а вот по этой теме — он что на каждый запрос проверяет наличие кворума ?
Mark ☢️
чювак ничо не сказал на эту тему
Alexander
Он говорил об этом
Mark ☢️
если да, то там нужна быстрая сетощке
Mark ☢️
Он говорил об этом
я чот пропустил видать
Dmitry
https://youtu.be/7CR5eH6a8Fo
А там есть ответ на этот вопрос?
Александр
А там есть ответ на этот вопрос?
Там вроде просто объяснение кейс с бд в ваккуме
𝚔𝚟𝚊𝚙𝚜
Спасибо. Совсем забыл про порядок старта. А под клауд провайдером что подразумевается ? И обязателен ли фенсинг если pvc перемонтируется ?
Ну если у вас куб работает в облаке или в "какой-нибудь openstack'е", то можно к нему cloud-provider прикрутить, чтобы куб самостоятельно занимался созданием нод и томов, а так же их аттачем, фенсинг там как правило из коробки. > обязателен ли фенсинг если pvc перемонтируется ? Дело в том, что без него pvc тоже не перемонтируется.
𝚔𝚟𝚊𝚙𝚜
Есть ещё вариант понимать базы оператором, каждая база - это кластер из трёх реплик например, тогда в случае падения ноды ничего перезапускать не потребуется. База продолжит работу с оставшимися двумя репликами.
Mark ☢️
https://youtu.be/7CR5eH6a8Fo
Вот я бы задал аффтару вопрос блять
Mark ☢️
допустим у меня говносхема с этим столоне
Mark ☢️
с поцгресом
Mark ☢️
есть один мастер, конём его
Mark ☢️
все клиенты срут туда. И вот он взял такой и диск кирдык.
Mark ☢️
и не успело оно зареплицироваться
Mark ☢️
и усё. потеря данных
Mark ☢️
получается надо каждую тразнакцию реплизировать.