Магазин приложений
Концепция
Информация
Готовый helm package из этой статьи доступен по ссылке
K8s - довольно сложная система. Зачастую пользователи хотят автоматизировать и упростить установку распространённого ПО, такого как базы данных.
Один из самых распространённых запросов - облегчение старта нового проекта. После согласования и выделения ресурсов тимлид заказывает стандартный стек серверного ПО, например, postgresql и redis.
Обычно он просит коллег из департамента сопровождения развернуть это ПО и ждёт, когда его задача будет готова.
Но с механизмом маркетплейса приложений он сможет самостоятельно установить всё это в выделенный ему кусок инфраструктуры, используя красивый графический установщик прямо в браузере!
Механизм маркетплейса основан на уже классическом и проверенном решении - helm.
Фактически мы берём существующий helm чарт, обогащаем его дополнительной информацией, собираем из него helm package и публикуем в специально подготовленном репозитории.
В результате - красивый интерфейс со списком доступных для установки пакетов:
Общий интерфейс
Ранее мы описали сложности использования k8s для разработчиков, теперь рассмотрим функционал подробнее.
Заметка
Этот каталог содержит в себе демонстрационные приложения. Он не публичный.
В главном меню доступен список всех опубликованных приложений. В контексте этой статьи разберём приложение metabase.
Выбираем его и переходим к следующему экрану:
На этом этапе видим общую информацию о приложении:
- Имя чарта
- Описание чарта
- Дополнительные сведения
- Версия чарта
- Версия приложения
- Мета информация
- Кнопка установки
Все эти поля подтягиваются из созданного нами артефакта (helm package) + метаинформации из музея чартов.
Доступно одно действие - install.
Установка
После активации установки мы попадаем на первый экран помощника установки:
Где доступно 2 поля: первое даёт возможность выбрать или создать namespace, во втором указываем имя для релиза.
Следующий экран:
На этом экране параметры установки. Это именно то, ради чего мы обогащали стандартный helm чарт.
Заметка
Графический интерфейс установщика динамический - в зависимости от выбора опций количество меню и их состав может меняться.
В этом примере доступны следующие настройки:
- Custom Database - настройки базы данных, которая установится вместе с metabase
- Resourse - настройка ресурс лимитов и ресурс реквестов
- Storage - настройка PV (постоянного хранения) внутри k8s
- ingress - настройка доменного имени
Эти параметры отличаются для каждого чарта.
Обратим внимание на верхнюю часть графического установщика:
В меню Edit YAML - голый манифест values. Если вам удобно, можно описать всё текстом, а не пользоваться графическим интерфейсом.
в меню Compare Changes - отличия values манифеста от стандартного, который лежит в helm package.
От функционала конфигурации перейдём к окну установки:
Доступен полный лог установки helm чарта. По готовности установки увидим сообщение:
Обновление
Если в подключённом репозитории появляется новая версия пакета, это сразу будет отражено в общем списке установленных пакетов в виде жёлтого лейбла:
По нажатию на него откроется меню:
В интерфейсе обновления в выпадающем списке видны все версии нашего ПО. После перехода на эту страницу автоматически выбирается последняя версия, а текущая установленная версия также отмечена в списке.
При переходе далее будет экран изменения настроек.
Удаление приложения
Перейдём в меню установленных приложений Apps → installed apps
Проверим, что фильтр namespace установлен в значение, которое мы использовали при установке приложения.
В выпадающем меню нажимаем Delete и ожидаем удаления ресурсов.
Дополнения
Мониторинг
Используя механизмы платформы, можно установить не только само приложение, но и дополнительные обвязки, например, дашборды для встроенной grafana.
Также в нашем демонстрационном чарте устанавливается дашборд для postgres:










