Управление несколькими базами данных
У нас есть проект, в котором нашим хостинг-клиентам предлагается база данных (MySql) как часть их плана, и мне было любопытно, как бы это организовать. Мы хотим запустить базы данных на разных компьютерах, на которых работают веб-серверы.
Я думал об использовании Kubernetes с новым StatefulSet
особенность, но я действительно заинтригован, кстати compose.io
делает свою работу Кажется, они гарантируют iops и CPU с ограничениями, применяемыми к RAM и Disk, как и ко всем базам данных, которые они предлагают. Один из способов заключается в том, чтобы в Kubernetes выделить ограниченный постоянный том и запустить контейнер с ограниченной оперативной памятью, не применяя ничего к ЦП, но это создаст крайне нестабильный кластер, поскольку контейнеры / модули начинают загружать ЦП, а Kubernetes постоянно перемещает их на узлы, где необходимые ресурсы найдены. Соедините это с постоянными томами, которые замедляют работу, так как модуль должен быть уничтожен перед подключением диска в другом месте, и у вас могут быть большие простои для клиентов.
Мне просто любопытно, что вы думаете о том, как они управляют своими базами данных.
1 ответ
ВНИМАНИЕ: Государство в Kubernetes очень тяжелое, сделайте больше домашней работы, чем этот ответ, прежде чем ставить что-либо даже вблизи производства!
Каждый сценарий отличается, но некоторые лучшие практики:
- Кластер Mutli-instance, использующий StatefulSets
- Каждый модуль в наборе получает свой объем данных
- Inter-pod Анти-сродство