Рекомендуется ли запускать кластеризованную базу данных с Kubernetes в производственной среде?

#mysql #database #kubernetes #production-environment

#mysql #База данных #kubernetes #производственная среда

Вопрос:

Разумно ли использовать Kubernetes для кластеризованной базы данных, такой как MySQL, в рабочей среде?

Существуют примеры конфигураций, такие как пример mysql galera. Однако в большинстве примеров не используются постоянные тома. Насколько я понял, постоянные тома должны находиться в некоторой общей файловой системе, как определено здесь Типы постоянных томов Kubernetes. Общая файловая система не гарантирует, что файлы базы данных модуля будут локальными на компьютере, на котором размещен модуль. Доступ к ней будет осуществляться по сети, что довольно медленно. Кроме того, есть проблемы, например, с MySQL и NFS.

Это может быть приемлемо для тестовой среды. Однако, что я должен делать в производственной среде? Не лучше ли запускать кластер базы данных вне Kubernetes и запускать только серверы приложений с Kubernetes?

Ответ №1:

В проекте Kubernetes были представлены PetSets, новая абстракция управления pod, предназначенная для запуска приложений с отслеживанием состояния. В настоящее время это альфа-функция (начиная с версии 1.4) и она быстро развивается. Здесь приведен список различных проблем, возникающих при переходе к бета-версии. Цитирую из раздела о том, когда использовать petsets:

Набор домашних животных гарантирует, что указанное количество «домашних животных» с уникальными идентификаторами запущено в любой момент времени. Идентификатор Pet состоит из:

  • стабильное имя хоста, доступное в DNS
  • порядковый индекс
  • стабильное хранилище: привязано к порядковому номеру и имени хоста

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

Доступно несколько конфигурационных файлов YAML (таких как те, на которые вы ссылались), использующих наборы реплик и развертывания для MySQL и других баз данных, которые могут запускаться в рабочей среде и, вероятно, также запускаются таким образом. Однако ожидается, что PetSets значительно упростят запуск этих типов рабочих нагрузок, поддерживая обновления, обслуживание, масштабирование и так далее.

Вы можете найти несколько примеров распределенных баз данных с petsets здесь.


Преимущество предоставления постоянных томов, которые подключены к сети и нелокальны (например, GlusterFS), реализуется в масштабе. Однако для относительно небольших кластеров есть предложение разрешить в будущем использовать постоянные тома локального хранилища.