Denis
yopp
ну например упавший агент, который триггерит фейловер с деплоем новой ноды, при том, что нода жива
yopp
или у нас отъехал шард, шедуллер решил его снова развернуть
Denis
Denis
что за агент?
yopp
агент k8s
Denis
у k8s нет агентов. есть мастера кластера и etcd.
yopp
а kubelet это не агент разве?
yopp
я за k8s плохо слежу, у меня знания сильно устаревшие
yopp
легко могу ошибаться
Denis
это компонент k8s, который живет на каждой воркер-ноде. И по заданию шудуллера десантирует поды на ноды
yopp
вооот
Denis
Так можно сказать про любой фреймворк оркестрации контейнерами. Делаете кластера высокой доступности, что бы не отьехал кластер от малейшего чиха.
yopp
и теперь у нас есть две версии конфигураций (топология по версии k8s и топлогия по версии монги), обе eventually consistent, которые ещё и синхроинизировать надо
yopp
это _очень_ ненадёжно
Denis
Народ говорит что сложные кейсы в k8s не нужно пихать.
yopp
даже репликасет это уже сложный кейс
Denis
У меня задача просто хранить несколько реплик.
Denis
мне хватает
yopp
когда шедуллеры смогут напрямую получать состояние из монги, тогда да
Denis
Реализовывай хэлтчеки
yopp
но это требует и со стороны монги апи для топологий высунуть или шедуллерам иметь встроенный клиент монги, чтоб изменения топологии видеть
AstraSerg
Denis
kubelet это умеет делать
Denis
yopp
это всё в теории хорошо выглядит, а когда вы попробуете сделать стерсс-тест ваших вотчдогов, вы на практике поймёте как легко получить вместо реплики с данными, пустую реплику
yopp
потому что хелсчек увидел что нод нет и решил развернуть кластер по новой
yopp
почти все деплоилки которые я видел ориентируються на количество нод в кластере
yopp
а это ужасный способ
Denis
а чем он ужасен?
yopp
всем?
Denis
Вообще у меня не было проблем не каких
yopp
количество нод это не представление топологии
yopp
я пытался в своё время на cattle в ранчере сделать автоматический деплой и скейлинг
yopp
не думаю что в k8s что-то принципиально иначе
yopp
простая ситуация: у нас отвалился линк до части инфраструктуры
yopp
шедуллер это увидел и решил что надо катать ноды
yopp
я пытался кешировать топологию в etcd, но это тоже плохо кончилось
yopp
в итоге приходится дублировать весь стек управления топологией в шедуллере и жить с надеждой что были учтены все кейсы
yopp
на мой взгляд гораздо проще автоматизировать провижин и руками управлять конфигурацией, это очень мало работы
Denis
я видимо не совсем понимаю ваш кейс...
yopp
нажимать кнопки в ранчере, чтоб катать новые шарды, например
yopp
автоскейл репликасета
rdcm
вот чет ранчер не похож на нормальный инструмент судя по отзывам в чате k8s
rdcm
его поливают там со всех сторон
yopp
я тоже самое могу про k8s сказать
yopp
k8s это пример сложности для решения задач в масштабах гугла, которую переносят на масштаб «раскатаем блог»
yopp
но это уже другая тема, не для этого чята
rdcm
если есть пара десятков микросервисов, то без оркестратора уже сложо
yopp
современную контейнеризацию делали для stateless сервисов. а базы данных по своей природе statefull и по этому _очень_ плохо упихиваются в контейнеры
yopp
любой statefull сервис, которому нужно хранить состояние между запусками будет большой болью, потому что возникает требование иметь распределённое хранилище, которое может ездить за сервисом
Denis
yopp
он это решает вводя дополнительные ограничения на шедулинг сервисов
yopp
если там ничего не изменилось
yopp
проблема с наличием состояний — их синхронизация. Это фундаментальная проблема, которая упирается в законы физики. Попробуйте ради интереса попытаться сделать распределённое k/v хранилище, только CRUD.
Артём
user_id: {
type: Number,
required: true,
unique: true
},
пытаюсь сделать user_id уникальным при добавлении
Артём
не работает
🖤
Tonylook
hello guys, i'm totally new to mongoDB, and i'm looking for help, can anyone help me? my problem is that i can't see my elements, this is the log of the DB, but I can't login with db.auth with my account "poste" neither with "admin" can anyone help me steb by step?
Tonylook
Tonylook
if I do show dbs
Tonylook
this is the error
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
Constantin
Tonylook
because my connection string is "mongodb://poste:libretti24@poste-mongodb/nasa"
Constantin
Tonylook
i have also admin user
Constantin
Use admin instead
Tonylook
the output is this
Tonylook
> db.auth(admin,iiUmBR5D0GTgbPtA)
2018-09-11T09:56:28.429+0000 E QUERY [thread1] ReferenceError: admin is not defined :
Vova
"admin", not admin
Vova
with "
Vova
And for password too
Constantin
Constantin
mongo -u admin -p AdminPassword --authenticationDatabase admin
Constantin
Try it
Tonylook
yeeess