Я пытаюсь развернуть два модуля MySQL с одним и тем же PVC, но я получаю CrashLoopBackoff
состояние, когда создаю второй модуль с ошибкой в журналах: «innoDB проверьте, что у вас еще нет другого процесса mysqld, использующего те же файлы журнала innodb» . Как устранить эту ошибку?
Попытка создать два модуля MySQL в кубернетах с одинаковым объемом для обеспечения высокой доступности
Ответы (1)
Есть разные варианты решения проблемы высокой доступности. Если вы используете kubernetes с инфраструктурой, которая может предоставлять том для разных узлов (например, в облаке), и ваш модуль / узел выходит из строя, kubernetes перезапустит базу данных на другом узле с тем же объемом. Помимо короткого простоя, у вас будет резервное копирование базы данных за относительно короткое время. Том будет подключен к одному запущенному модулю mysql, чтобы предотвратить повреждение данных из-за одновременного доступа. (Это то, что mysql замечает и в вашем сценарии, поскольку он не предназначен для общего хранилища в качестве решения высокой доступности)
Если вам нужно больше, вы можете использовать встроенную репликацию mysql для создания mysql «кластера», который можно использовать, даже если один узел / под выйдет из строя. В этом случае каждый экземпляр кластера mysql будет иметь отдельный том. Взгляните на пример набора с отслеживанием состояния kubernetes для этого сценария: https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/