Инициализация базы данных MySQL, развернутой в AWS EKS - PullRequest
0 голосов
/ 30 октября 2018

В моем кластере AWS EKS есть модуль, в котором работает MySQL: 5.7. У меня есть файл SQL, который инициализирует и заполняет данные для него. в обычном docker-compose я буду использовать точку монтирования для него в моем файле docker-compose:

volumes:
  - ./<path-to-my-config-directory>:/etc/mysql/conf.d
  - ./<path-to-my-persistence-directory>:/var/lib/mysql
  - ./<path-to-my-init.sql>:/docker-entrypoint-initdb.d/init.sql

В EKS я могу создать класс хранилища для хранения данных MySQL.

Как я могу использовать мой файл init.sql (около 8 ГБ) для инициализации модулей MySQL, работающих в кластере EKS?

Обновление: есть еще один вопрос, который объясняет, как это сделать, если у вас небольшой файл инициализации или у вас есть доступ к хосту Kubernetes: Как инициализировать контейнер mysql при создании в Kubernetes?

В моем случае я использую AWS EKS, и мой файл инициализации составляет несколько гигабайт, поэтому любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 30 октября 2018

В Куберне тоже легко. Вы можете сделать это следующим образом,

  1. Поместите файл init.sql в Kubernetes том .
  2. Смонтируйте этот том в каталог /docker-entrypoint-initdb.d вашего модуля MySQL.

Вот пример файла yaml: mysql-init-demo.yaml

Вы также можете использовать init-container для загрузки файла init.sql в том Kubernetes, который смонтирован в каталоге /docker-entrypoint-initdb.d контейнера mysql.

UPD: Как вы указали в обновлении, что упомянутое вами решение не будет работать для вас. Я думаю, что init-container подход будет наиболее подходящим для вас. Вот как это можно сделать:

  1. Создать пвх. Пусть его зовут init-script.
  2. Теперь добавьте init-container к вашему модулю mysql. Смонтируйте этот init-script pvc в какой-то каталог этого init-container. Настройте init-container таким образом, чтобы он загружал файл init.sql в этот каталог.

  3. Установите init-script в контейнер mysql на /docker-entrypoint-initdb.d

Дайте мне знать, если вам нужен образец с init-container подходом.

UPD-2: Я добавил образец для подхода init-container. Вы можете найти это здесь .

...