Andrey
Andrey
Александр
Roman
kubespray?
Норм инструмент? Тоже на него натыкался.
Andrey
Roman
Спс
D
Andrey
Yaroslav
Привет всем, товарищи девопсы просветите на тему репликации монги в k8s:
На данный момент есть монга которая крутится в проде : 1 инстанс
Поступила задача настроить ее репликацию
для развертывания используется helm
Для выполнения задачи нужно:
1) Убрать deployment конфиг
2) Добавить storageClass (Он обязательный ? )
3) Добавить Headless - обычный Service который предоставляет уникальный адрес без которого приложениям придется подключаться к репликам по отедльности ?
4) добавить StatefulSet
После применения этих конфигов существующий инстанс монги удалится и поднимутся 3 реплики + 1 хедлесс монга
Я правильно описал процесс ?
Andrey
есть готовый чарт с репликацией
Andrey
https://github.com/helm/charts/tree/master/stable/mongodb-replicaset
Yaroslav
Эт очень круто, спасибо. сейчас изучу))
Но то что я написал верно ?
Andrey
не спец в монге. Я бы просто сделал дамп, поднял репликасет, залил туда дамп, поправил бы connection string в аппликуе и всё
Misha
велл, ну не все так просто
Misha
насчет монги
Misha
данные рассинкаются, пока твой дамп накатится. Даже если не дамп, даже если со снапшота диска на облаках восстановишься
Andrey
разумеется. если нужно всё делать по уму, либо устраиваем даунтайм, либо открываем доки монги и включаем мозг. Задача стандартная, наверняка есть решение
Misha
там примерно так можно сделать;
1. Поднял на кубере все ноды
2. Подключил их к прод-кластеру как реплики, можно без чтения в приложения
3. Подключил реплики к приложению
4. Перевыбрал мастера на ноду из кубер-кластера
5. Отсоединяешь старый кластер
Misha
Как-то так, но там без даунтайма можно в принципе
Misha
и мэйк шур, что чарт подразумевает концепцию hidden-реплики, чтобы с прода голого бэкапы не снимать; ну это очевидно наверно
Mikhail
а как мейк шур что headless service на primary mongo указывать будет? писать же только в primary даст, или включать все реплики в connection string
Misha
Misha
монга не мускуль, у нее нет фиксированного мастера в реплика сете, он постоянно меняется
Misha
если дравйер умный, то он будет спрашивать через фиксированный интервал
Misha
если тупой, то будет спрашивать каждый раз
Misha
с пыхой так раньше было по крайней мере
Yaros
народ, может кто подсказать как у редиса с репликацией? Меня убеждали, что он не может в несколько мастеров с репликацией между ними. Что мол мастер нод падает и все, отказ редиса полный идет. Я не специалист по редису, но догадываюсь, что возможно человек просто не знает чего-то. Смотрел на redis sentinel он не решает проблему? Там просто не совсем понятно написано можно ли сделать несколько мастер узлов, разнести их и настроить между ними репликацию данных.
Etki
У редиса все плохо. Формально умеет, на практике используйте нормальные инструменты.
Misha
есть либо master-slave, где с падением мастера падает все, либо redis-cluster с делением на шарды
Misha
redis-cluster хорошо работает, но с ним то ли не все драйверы работают, либо все, но нужно будет переписывать логику приложения, если присутствует
Misha
redis-sentinel это уже легаси вроде бы, redis-cluster решает эту задачу
Misha
multi-master как такового не существует
Etki
там вроде была координация запросов, но опять же, если вы хотите уверенности в завтрашнем дне, не используйте его вообще
Andrey
#helm
у helm есть возможность создать ресурс только при начальном развёртывании? Usecase следующий: нужно создать configmap с дефолтным конфигом приложения, но потом перестать его контролировать. Аналог в rpm - это файлы конфигурации.
Anonymous
нет
Andrey
спс. значит вручную буду делать
Алексей
А зачем вам редис?
Etki
редис не нужен [x]
Viktor
А что нужно?
Bro
мемкэшед какой-нибудь?
Etki
(ща меня как следует отдуасят) аэроспайк, они вроде как вернули возможность задавать Node ID самостоятельно
PsyDebug
Если нужен прям кластер, то лучше уж каучбэйс какой нибудь
Igor
Andrei
А еще можно tarantool vshard
Etki
Etki
а как его в стейтфул сет иначе превратить
Igor
а как его в стейтфул сет иначе превратить
Хм. Надо попробовать будет поигратся в кубере. Вроде не играло особой роли при масшатибровании клсатера. С мешем просто имена генериш, с мультикастом само. Конечно может генерится мусор из мертвых нод но новые со старыми данными должны втыкатся без проблем.
Etki
ну это только если его как ин-мемори использовать
Ivan
Ivan
А там гляди и патч в ядро дотащат
Александр
Везёт. А нам нужон
Александр
Буду dnsmasq на каждую ноду костылить. Другого выхода нет
Скоро рассвет
Ivan
Я б unbound закостылил
Ivan
Он умеет не давать кэшу протухать
Александр
Не осознаю масштаба трагедии
G72K
Andrey
в чужой монастырь со своим уставом не лезут, конечно, но мне просто не нравится идеология хелма, который берёт на себя больше задач, чем положено пакетному манагеру и шаблонизатору. Хранение конфигураций в values (типа кредов к базе и тд) - как по мне - плохой подход.
Andrey
оно с configmap в secrets и то недавно перелезло
Andrey
подход с job в pre-install хуке годный, но сложный и неочевидный. Я лучше буду вручную создавать configmap и передавать её как параметр через values
bebebe
я собственно хотел предложить хуки в helm'e, но постеснялся
от такого решения больше проблем в теории чем пользы
Sashko
https://m.habr.com/company/southbridge/blog/423143/
Или уже все знают?)))
Мерль
https://habr.com/post/423197/
Вадим
Вполне рабочий метод.
Вадим
мастера в монге можно задать, если вдруг нужно (поднять приоритет в голосах у одной из нод). (но не нужно)))))
Вадим
Вадим
Есть 2 новости, это же второй Слерм, одна хорошая, а другая не так всем понравится))
Вадим
Будет возможность онлайн участия во всех курсах - и в Слерм, который "Кубернетес для начинающих", и в МегаСлерм, "Кубернетес для тех, кто уже умеет". С лекциями, заданиями прямо онлайн и т.п.
Вадим
Но не будет открытой бесплатной трансляции, к сожалению.
Михаил
А вы орг?
Вадим
я из команды оргов, буду ведущим
микрофон носить спикерам и т.п.)))
Вадим
интервью брать
Михаил
у меня херовое настроение, посему я доебусь
обучать народ это конечно прекрасно, но где ваши тех доклады на митапах?
Михаил
отдельно хочу проехаться по kubeadm и kube-spray
обучать народ говну за бабло это прекрасно
Вадим
)