Несколько стручков, использующих одну и ту же базу данных на kubernetes

Я хотел бы знать, возможно ли для нескольких модулей в одном кластере Kubernetes доступ к базе данных, которая настроена с использованием постоянных томов на постоянном диске облака Google.

В настоящее время я создаю веб-приложение для архитектуры микросервисов, которое имеет 3 узла API в разных модулях, каждый из которых обращается к одной и той же базе данных. Так как мне добиться этого с kubernetes.

Пожалуйста, дайте мне знать, если моя архитектура также подходит

1 ответ

Решение

Вы, безусловно, можете подключить несколько модулей приложений на основе узла к одной и той же базе данных. Иногда говорят, что микросервисы не должны совместно использовать базу данных, но это зависит от того, что делают ваши приложения, истории проекта и степени, в которой вы хотите, чтобы части работали отдельно.

Есть вопросы, на которые вы должны ответить о работе баз данных в масштабе, например, о вашей будущей нагрузке и о том, хотите ли вы использовать реляционные базы данных, если вы пытаетесь охватить зоны доступности. И есть некоторые специфические особенности для kubernetes, особенно в отношении того, как вы связываете блоки данных DB с данными. См. /questions/16436396/zapuskat-bazu-dannyih-kak-kontejner-docker-ili-na-golom-metallicheskom-servere/16436414#16436414. Другим популярным вариантом является использование службы управляемых БД от облачного провайдера. Если вы запускаете БД в k8s, то я бы посоветовал поискать диаграмму рулевого управления или посмотреть оператор, такой как оператор kubeDB, чтобы избежать самостоятельной обработки дескрипторов kubernetes и получить дополнительные рекомендации по работе с БД и ее настройке.,

Если это новый проект, и вы не использовали k8s до этого, вам также нужно будет решить, где разместить свой код, образы докеров и дескрипторы развертывания и как настроить конвейеры CI. Если у вас еще нет ответов на эти вопросы, я бы посоветовал взглянуть на Jenkins-X, так как он предоставит вам готовые настройки по умолчанию для всего кластера и настройки CI, а также шаблон ("пакет сборки") для сборки размещать приложения и развертывать их в промежуточной и рабочей средах по конвейеру.