#docker #kubernetes #kubernetes-helm #azure-aks #bitnami
#docker #kubernetes #kubernetes-helm #azure-aks #bitnami
Вопрос:
Возьмем, к примеру, bitnami / wordpress или bitnami / drupal. Существуют миллионы статей о том, как запустить две строки кода (helm get repo / helm install my-release chart) и получить полностью работающую новую версию приложения за 30 секунд. Но я не могу найти НИКАКОЙ информации о том, как перенести мои существующие данные в это развертывание.
В моем рабочем процессе разработки я использую два образа docker. Один предназначен для файлов приложения, а другой — для базы данных. Локально достаточно легко перенести мои данные в эти изображения. Используя инструкции docker от MariaDB, я монтирую локальный каталог, содержащий мой файл db.sql, в /docker-entrypoint-initdb.d. То же самое касается моих файлов — переместите их в локальный каталог, который затем будет смонтирован в папку контейнера /var/www. Вуаля! Мгновенный запуск приложения со всеми существующими данными.
Итак, как мне сделать это с помощью общедоступной схемы управления?
Сценарий: я получаю локальные копии своих db.sql и веб-файлов. Я вношу свои изменения. Я хочу использовать bitnami / drupal для установки этого в кластер (чтобы коллега мог его видеть, UAT и т. Д.). Итак, как мне это сделать? Если это values.yaml
проблема, как мне настроить этот файл так, чтобы он указывал на файл базы данных, с помощью которого я хочу инициализировать? Или как мне использовать Helm install with --set
для этого?
Если запустить и запустить новое приложение так же просто, как helm install my-release bitnami/drupal
тогда разве не должно быть так же легко запустить что-то вроде
helm install --set mariadb.docker-entrypoint-initdb.d.file=db.sql --set volume.www.initial.data=/local/web/files new-feature-ticket bitnami/drupal
Я знаю, что это псевдокод, но это именно тот тип ответа, который я ищу. Я хочу иметь возможность развертывать это так же быстро, как и новое приложение, но инициализировать с помощью моих существующих данных, и для этого требуется минимальная конфигурация, будь то через значения.yaml или —set.
Комментарии:
1. Для drupal это выглядит так, как будто он используется
persistence.existingClaim
для указания существующего PVC с данными.2. Он также должен
mariadb.primary.persistence.hostPath
использовать том hostpath иmariadb.primary.persistence.existingClaim
использовать существующий PVC для базы данных3. Как бы вы подошли к этому без контейнерной системы? Я могу запустить
brew install mysql
илиapt-get install mysql-server
легко получить сервер MySQL локально; как я мог бы воспроизводимо передавать в него данные?4. Вероятно, вам нужен постоянный том с вашими данными, и вам нужно установить правильные параметры drupal , какое решение Kubernetes вы используете — какой-нибудь облачный провайдер или обычный?
5. Пока что немного коснусь комментариев. Если бы кто-то побежал
helm install my-release bitnami/drupal
Вы получаете полностью работающую ванильную установку. PV, PVC, база данных, сервер БД, все параметры подключения, секреты — все это на 100% обрабатывается автоматически за кулисами с помощью диаграммы bitnami / drupal. Я не знаю деталей реализации. В том-то и дело, что я не хочу знать или беспокоиться о них. Все, что я хочу сделать, это запустить ту же команду и запустить процесс установки с моими данными из файла my-backup-db.sql.