Перейти к содержанию

Магазин приложений

Концепция

Информация

Готовый helm package из этой статьи доступен по ссылке

K8s - довольно сложная система. Зачастую пользователи хотят автоматизировать и упростить установку распространённого ПО, такого как базы данных.

Один из самых распространённых запросов - облегчение старта нового проекта. После согласования и выделения ресурсов тимлид заказывает стандартный стек серверного ПО, например, postgresql и redis.

Обычно он просит коллег из департамента сопровождения развернуть это ПО и ждёт, когда его задача будет готова.

Но с механизмом маркетплейса приложений он сможет самостоятельно установить всё это в выделенный ему кусок инфраструктуры, используя красивый графический установщик прямо в браузере!

Механизм маркетплейса основан на уже классическом и проверенном решении - helm.

Фактически мы берём существующий helm чарт, обогащаем его дополнительной информацией, собираем из него helm package и публикуем в специально подготовленном репозитории.

В результате - красивый интерфейс со списком доступных для установки пакетов:

Техническая документация

Общий интерфейс

Ранее мы описали сложности использования k8s для разработчиков, теперь рассмотрим функционал подробнее.

Заметка

Этот каталог содержит в себе демонстрационные приложения. Он не публичный.

Главное меню: Главное меню

В главном меню доступен список всех опубликованных приложений. В контексте этой статьи разберём приложение metabase.

Выбираем его и переходим к следующему экрану:

Меню приложения

На этом этапе видим общую информацию о приложении:

  1. Имя чарта
  2. Описание чарта
  3. Дополнительные сведения
  4. Версия чарта
  5. Версия приложения
  6. Мета информация
  7. Кнопка установки

Все эти поля подтягиваются из созданного нами артефакта (helm package) + метаинформации из музея чартов.

Доступно одно действие - install.

Установка

После активации установки мы попадаем на первый экран помощника установки:

Первый этап

Где доступно 2 поля: первое даёт возможность выбрать или создать namespace, во втором указываем имя для релиза.

Следующий экран:

Второй этап

На этом экране параметры установки. Это именно то, ради чего мы обогащали стандартный helm чарт.

Заметка

Графический интерфейс установщика динамический - в зависимости от выбора опций количество меню и их состав может меняться.

В этом примере доступны следующие настройки:

  • Custom Database - настройки базы данных, которая установится вместе с metabase
  • Resourse - настройка ресурс лимитов и ресурс реквестов
  • Storage - настройка PV (постоянного хранения) внутри k8s
  • ingress - настройка доменного имени

Эти параметры отличаются для каждого чарта.

Обратим внимание на верхнюю часть графического установщика:

Вкладки редактора

В меню Edit YAML - голый манифест values. Если вам удобно, можно описать всё текстом, а не пользоваться графическим интерфейсом.

Yaml editor

в меню Compare Changes - отличия values манифеста от стандартного, который лежит в helm package.

Yaml editor

От функционала конфигурации перейдём к окну установки:

Установка Доступен полный лог установки helm чарта. По готовности установки увидим сообщение:

Окончание установки

Обновление

Если в подключённом репозитории появляется новая версия пакета, это сразу будет отражено в общем списке установленных пакетов в виде жёлтого лейбла: Есть обновление По нажатию на него откроется меню:

Обновление

В интерфейсе обновления в выпадающем списке видны все версии нашего ПО. После перехода на эту страницу автоматически выбирается последняя версия, а текущая установленная версия также отмечена в списке.

При переходе далее будет экран изменения настроек.

Удаление приложения

Перейдём в меню установленных приложений Appsinstalled apps

Проверим, что фильтр namespace установлен в значение, которое мы использовали при установке приложения.

Удаление приложения

В выпадающем меню нажимаем Delete и ожидаем удаления ресурсов.

Дополнения

Мониторинг

Используя механизмы платформы, можно установить не только само приложение, но и дополнительные обвязки, например, дашборды для встроенной grafana. Также в нашем демонстрационном чарте устанавливается дашборд для postgres: Мониторинг