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

Я пытаюсь развернуть два модуля MySQL с одним и тем же PVC, но я получаю CrashLoopBackoff состояние, когда создаю второй модуль с ошибкой в ​​журналах: «innoDB проверьте, что у вас еще нет другого процесса mysqld, использующего те же файлы журнала innodb» . Как устранить эту ошибку?


person Sufia Almas    schedule 04.08.2019    source источник
comment
вы не хотите, чтобы два параллельных модуля mysql могли читать и писать с одного и того же тома / хранилища; вы можете вместо этого настроить настройку репликации главный / подчиненный   -  person Federkun    schedule 04.08.2019


Ответы (1)


Есть разные варианты решения проблемы высокой доступности. Если вы используете kubernetes с инфраструктурой, которая может предоставлять том для разных узлов (например, в облаке), и ваш модуль / узел выходит из строя, kubernetes перезапустит базу данных на другом узле с тем же объемом. Помимо короткого простоя, у вас будет резервное копирование базы данных за относительно короткое время. Том будет подключен к одному запущенному модулю mysql, чтобы предотвратить повреждение данных из-за одновременного доступа. (Это то, что mysql замечает и в вашем сценарии, поскольку он не предназначен для общего хранилища в качестве решения высокой доступности)

Если вам нужно больше, вы можете использовать встроенную репликацию mysql для создания mysql «кластера», который можно использовать, даже если один узел / под выйдет из строя. В этом случае каждый экземпляр кластера mysql будет иметь отдельный том. Взгляните на пример набора с отслеживанием состояния kubernetes для этого сценария: https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/

person Thomas    schedule 04.08.2019