Целесообразно ли хранить базу данных в постоянном томе Kubernetes (и как сделать резервную копию?) - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть веб-приложение, работающее в кластере Google Kubernetes. Мое веб-приложение также использует постоянные тома для нескольких баз данных MongoDB для хранения данных пользователей и приложений.

(1) Таким образом, я задаюсь вопросом, целесообразно ли хранить все данные в этих постоянных томах в долгосрочный?

(2) Существуют ли какие-либо способы безопасного резервного копирования постоянных томов, например, еженедельно (автоматически)?

( 3) Я также планирую интегрировать загрузку файлов в приложение. Могут ли постоянные тома хранить много ГБ / ТБ данных, или я должен выбрать что-то вроде облачного хранилища Google в этом случае?

Ответы [ 2 ]

2 голосов
/ 13 февраля 2020

Развертывание приложений statefull на K8s немного затруднительно, что хорошо известно в сообществе K8s. Обычно, если нам нужна HA для БД, которые должны быть развернуты в режиме кластера. Но в K8s, если вы хотите развернуть в режиме кластера, вам нужно проверить концепцию StatefulSets. В любом случае, я вставляю ссылки на ваши вопросы, так что вы можете начать с этого. -run?

(2) Существуют ли какие-либо методы для безопасного резервного копирования постоянные тома, например, еженедельно (автоматически)?

  1. Снимки постоянного тома
  2. Снимок тома (бета от Документы K8s) Вы можете добавить в Google еще больше документов.

(3) Я также планирую интегрировать загрузку файлов в приложение. Могут ли постоянные тома хранить много ГБ / ТБ данных, или я должен выбрать что-то вроде облачного хранилища Google в этом случае?

  • Не уверен, что он может содержать ТБ! ?? но определенно, если у вас есть облако, рассмотрите возможность его использования
1 голос
/ 13 февраля 2020

Да, вы можете использовать PV C в Kubernetes для хранения данных. Однако это зависит от варианта использования и размера вашего приложения.

В kubernetes вы можете развернуть Mon go DB как кластер и запустить его, который хранит данные внутри PV C .MongoDB Helm Chart доступна для HA, вы также можете ищите это.

Диаграмма руля: https://github.com/helm/charts/tree/master/stable/mongodb

Рекомендуется использовать один модуль или набор состояний MongoDB для Kubernetes.

Резервное копирование :

Для резервного копирования базы данных MongoDB вы можете делать снимок дискового хранилища (PV C) еженедельно, однако вы также можете использовать Mon go snapshot.

Большинство людей выберите управление сервисом, но, тем не менее, это также зависит от вашей организации.

Метод резервного копирования

  • Снимок MongoDB
  • Снимок дискового хранилища

Файловая система:

Да, он может обрабатывать ТБ данных как конечный том диска или файловой системы.

Да, вы можете использовать PV C как файловая система, но позже в будущем может возникнуть проблема с масштабированием, так как PV C равен ReadWriteOnce, если вы хотите масштабировать приложение вместе с PV C, вам необходимо реализовать ReadWriteMany.

Существует несколько методов, позволяющих добиться этого, вы также можете напрямую смонтировать файловую систему в pod, как AWS EFS, но вы можете обнаружить, что она медленна для файловых операций.

Для файловой системы существуют различные варианты, доступные в Kubernetes как драйвер csi , gluster FS , minio , EFS .

...