Назад | Перейти на главную страницу

Кластер и докер Azure AKS - как хранить постоянные данные

У меня есть приложение, которое запускается как служба в кластере Azure aks (kubernetes). Это приложение извлекает данные из базы данных и помещает их в файл.

Насколько я понимаю, мне сначала нужно создать образ докера и отправить его в реестр AKS Azure. Как только это будет сделано, мне нужно создать модуль и запустить это приложение как службу.

Вопрос, который у меня есть -

a) Какой вариант Azure или докера мне нужно использовать для хранения данных, чтобы они не удалялись (удалялись), если модуль разбился, удален или перенесен на другой узел, и данные остаются доступными в файле после создания файла.

б) При поиске в Интернете оказалось, что я могу использовать постоянный диск или файловое хранилище Azure, создавая его статически или динамически с помощью команды kubectl. Однако часть, которую я не понимаю, - после создания постоянного хранилища с помощью kubectl apply -f, как мне использовать хранилище на лазурном диске?

Нужно ли мне изменять dockerfile и указывать путь монтирования (том?), А также указывать путь монтирования в приложении (например, / mnt / app-data), где приложение может записывать данные в файл.

Хотя может существовать стандартный механизм для хранения данных в кластере aks, я в некоторой степени новичок в нем и с нетерпением жду совета экспертов, как создать и использовать хранилище в Azure (если быть точным, кластер aks) для приложения, которое будет записывать в него данные.

Сохранение данных в Kubernetes (независимо от того, является ли это AKS или другая реализация) потребует от вас взглянуть на использование постоянных томов. Это концепция Kubernetes, которая затем поддерживается определенными ресурсами хранилища в выбранном вами провайдере, например, в Azure это Диск Azure или Файлы Azure.

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

Если вам действительно нужно хранить эти данные, вам нужно подумать о том, чтобы прикрепить постоянный том к вашим модулям и указать его как том в вашем файле Docker. Здесь подробно рассказывается, как работает хранилище и как его настроить. Вот.