Helm#
Helm - менеджер пакетов DropApp, который помогает управлять приложениями посредством Helm-чартов для определения, установки и обновления приложений в кластере.
Примечание
Helm-чарты — это пакеты Helm, состоящие из файлов и шаблонов YAML, которые описывают ресурсы, такие как pods, сервисы и другие компоненты, необходимые для развертывания приложения. Они позволяют легко управлять сложными приложениями, автоматизируя процессы установки, обновления и удаления через простые команды CLI.
Список основных команд Helm представлен в таблице ниже.
Таблица. Список основных команд Helm
Команда |
Описание |
|---|---|
|
Установить |
|
Проверьте состояние |
|
Вывести параметры для настройки |
|
Расширить поставляемую конфигурацию |
|
Произвести развертывание Helm-чарта или указанной конфигурации |
|
Перечислить развертывания в кластере |
|
Загрузить информацию об указанном развертывании |
|
Вывести список манифестов или извлечь предоставленный манифест в виде |
|
Удалить информацию об указанном развертывании |
|
Обновить развертывание с использованием предоставленных конфигураций |
|
Вывести список типов развертывания в кластере |
|
Отобразить список экземпляров указанного типа развертывания в кластере |
|
Создать каталог (реестр), содержащий Helm-чарты |
|
Отобразить список доступных каталогов, содержащих Helm-чарты |
|
Вывести список Helm-чартов в заданном каталоге (использовать с опцией |
|
Описать Helm-чарт в заданном каталоге |
|
Получить учетные данные, используемые каталогом Helm-чартов |
|
Установить учетные данные, используемые каталогом Helm-чартов |
Список основных флагов Helm представлен в таблице ниже.
Таблица. Список флагов Helm
Флаг |
Описание |
|---|---|
|
Ввести токен API Github, который переопределяет переменную среды |
|
Указать путь к двоичному файлу расширения шаблона. По умолчанию - |
|
Поверить обслуживание адреса |
|
Указать имя развертывания, используемое для команд развертывания и обновления. По умолчанию совпадает с именем шаблона |
|
Ввести пароль Github, который переопределяет переменную среды |
|
Задать свойства, используемые при развертывании шаблона (например, |
|
Указать регулярное выражение для фильтрации шаблонов, перечисленных в реестре шаблонов |
|
Изменить имя реестра. По умолчанию - |
|
Отобразить файл, содержащий спецификацию реестра |
|
Задать URL-адрес для диспетчера развертывания. По умолчанию - |
|
Вывести файл учетной записи службы, содержащий токен JWT |
|
Настроить конфигурацию из стандартного ввода |
|
Указать время ожидания ответа в секундах. Значение по умолчанию - |
|
Задать имя пользователя Github, которое переопределяет переменную среды |
Сценарий установки Helm#
Для установки Helm выполните следующий сценарий:
Введите команду
docker run:docker run -it --rm /dapp-helm-2/helm:3.15.4Проверьте процесс установки:
docker inspect
Сценарий проверки версии Helm#
Для проверки установленной версии Helm выполните следующую команду:
docker run -it --rm /dapp-helm-2/helm:3.15.4 version
Сценарии администрирования с помощью Helm#
Развертывание приложения#
Чтобы установить приложение happy-panda, выполните следующие действия:
Введите команду
helm install:$ helm install happy-panda bitnami/wordpress NAME: happy-panda LAST DEPLOYED: Tue Jan 26 10:27:17 2021 NAMESPACE: default STATUS: deployed REVISION: 1 NOTES:Используйте команду для отслеживания статуса установки:
kubectl get svc --namespace default -w happy-panda-wordpress export SERVICE_IP=$(kubectl get svc --namespace default happy-panda-wordpress --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}") echo "WordPress URL: http://$SERVICE_IP/" echo "WordPress Admin URL: http://$SERVICE_IP/admin"Откройте браузер и войдите в
Wordpress, используя полученный URL-адрес.Введите следующие учетные данные:
echo Username: user echo Password: $(kubectl get secret --namespace default happy-panda-wordpress -o jsonpath="{.data.wordpress-password}" | base64 --decode)Wordpress-чарт установлен. При установке создается новый объект
release. В приведенном примереreleaseотображается под именемhappy-panda.Проверьте состояние
releaseпри помощи командыhelm status:$ helm status happy-panda NAME: happy-panda LAST DEPLOYED: Tue Jan 26 10:27:17 2021 NAMESPACE: default STATUS: deployed REVISION: 1 NOTES:Выведите параметры для настройки, используя команду:
$ helm show values bitnami/wordpressПереопределите параметры в YAML-файле и передайте этот файл во время установки:
$ echo '{mariadb.auth.database: user0db, mariadb.auth.username: user0}' > values.yaml $ helm install -f values.yaml bitnami/wordpress --generate-nameПриведенные команды создают пользователя
MariaDBпо умолчанию с именемuser0и предоставляет этому пользователю доступ к вновь созданной базе данныхuser0db. Все остальные настройки принимают значения по умолчанию.
Обновление приложения#
Чтобы обновить приложение happy-panda, выполните следующий сценарий:
Используйте команду
helm upgradeдля обновления:$ helm upgrade -f panda.yaml happy-panda bitnami/wordpressУбедитесь в успешном обновлении:
$ helm get values happy-panda mariadb: auth: username: user1
Откат приложения#
Чтобы откатить приложение happy-panda до предыдущей версии, введите команду helm rollback:
$ helm rollback happy-panda 1
Команда выполняет откат приложения happy-panda до первой версии.
Удаление приложения#
Чтобы удалить приложение happy-panda, выполните следующие шаги:
Введите команду
helm uninstall:$ helm uninstall happy-pandaКоманда удалит
releaseприложенияhappy-pandaиз кластера.Проверьте список всех развернутых
release:$ helm list NAME VERSION UPDATED STATUS CHART inky-cat 1 Wed Sep 28 12:59:46 2016 DEPLOYED alpine-0.1.0В приведенном примере
happy-pandaбыл успешно удален.
Helm-operator#
Helm-operator - оператор DropApp, который позволяет декларативно управлять выпусками Helm-чартов.
Функции, поддерживаемые Helm-operator:
декларативная установка, обновление и удаление выпусков Helm;
извлечение Helm-чартов из любого источника;
поддержка публичных или частных репозиториев Helm по протоколу HTTP/S;
поддержка публичных или частных репозиториев Git по протоколу HTTPS или SSH;
встроенный в ресурс
HelmRelease;автоматическая очистка при сбоях установки релиза;
автоматический необязательный откат при сбоях обновления;
автоматизированное (опционально) управление тестированием установок и обновлений;
автоматическое (опционально) обновление зависимостей для Helm-чартов из исходных текстов Git при установке или обновлении;
параллельная и масштабируемая обработка различных ресурсов
HelmReleaseс использованием рабочих nodes.
Установка Helm-operator#
Для установки Helm-operator выполните следующие действия:
Примените конфигурационный файл
helm-operator.yaml:kubectl apply -f <путь до конфига>/helm-operator.yamlГде,
<registry>- фактическое расположениеhelm-operator.yaml.Добавьте Helm-чарт Helm-operator в Helm:
helm repo add <chart-registry>Где,
<chart-registry>- путь до реестра Helm-чартов.Установите Helm-operator в namespace
<namespace>:helm install --wait --name helm-operator --namespace <namespace>Где,
<namespace>- имя namespace для Helm-operator.