Helm Ч это инструмент развертывани€ Kubernetes дл€ автоматизации создани€, упаковки, настройки и развертывани€ приложений и служб в кластерах Kubernetes.

Kubernetes Ч это мощна€ система управлени€ контейнеризацией дл€ развертывани€ приложений. ƒл€ этого существует несколько независимых ресурсов, и дл€ каждого требуетс€ отдельный YAML-файл манифеста.

¬ этой статье расскажем, что такое Helm и Helm Charts, а также как автоматизировать развертывание приложений в Kubernetes.


„то такое Helm?

≈сли бы Kubernetes был операционной системой, то Helm был бы менеджером пакетов. Ubuntu использует apt, CentOS использует yum, а Kubernetes использует helm.

Helm развертывает пакетные приложени€ в Kubernetes и структурирует их в чарты (Helm Charts). „арты содержат все предустановленные ресурсы приложени€ вместе со всеми верси€ми, которые помещены в один легко управл€емый пакет.

Helm упрощает установку, обновление, вызов зависимостей и настройку развертываний в Kubernetes с помощью простых CLI-команд. ѕакеты программного обеспечени€ наход€тс€ в репозитори€х или создаютс€.


ѕочему нам нужен Helm?

ќбъектами Kubernetes сложно управл€ть. Ѕлагодар€ полезным инструментам освоение Kubernetes становитс€ плавным и удобным. Helm автоматизирует обслуживание YAML-файлов дл€ объектов Kubernetes, упаковыва€ информацию в чарты и анонсиру€ их в кластере Kubernetes.

Helm отслеживает историю версий дл€ каждой установки и изменени€ чарта. ќткат к предыдущей версии или обновление до более новой выполн€етс€ пон€тными командами.

ƒоступные команды:

  • Completion Ч создает сценарий автозаполнени€ дл€ указанной оболочки.
  • Create Ч создает новый чарт с заданным именем.
  • Dependency Ч управление зависимост€ми чарта.
  • Env Ч информаци€ о клиентской среде Helm.
  • Get Ч загрузка расширенной информации об именованном релизе.
  • Help Ч помощь по любой команде.
  • History Ч получить историю релизов.
  • Install Ч установить чарт.
  • Lint Ч проверить чарт на возможные проблемы.
  • List Ч список релизов.
  • Package Ч упаковать каталог чарта в архив чарта.
  • Plugin Ч установить, внести в список или удалить плагины Helm.
  • Pull Ч загрузить чарт из репозитори€ или (опционально) распаковать его в локальный каталог.
  • Repo Ч установка, внесение в список, удаление, обновление и индексаци€ репозиториев чартов.
  • Rollback Ч откат релиза к предыдущей версии.
  • Search Ч поиск в чарте по ключевым словам.
  • Show Ч показать информацию о чарте.
  • Status Ч отображение статуса названного релиза.
  • Template Ч локальное отображение шаблонов.
  • Test Ч запустить тесты релиза.
  • Uninstall Ч деинсталлировать релиз.
  • Upgrade Ч обновить релиз.
  • Verify Ч проверить, что чарт по указанному пути подписан и действителен.
  • Version Ч распечатать информацию о версии клиента.

„то вы можете сделать с помощью Helm?

Helm позвол€ет разработчикам программного обеспечени€ развертывать и тестировать среду самым простым способом. “ребуетс€ меньше времени, чтобы перейти от разработки к тестированию и продакшену.

ѕомимо повышени€ производительности, Helm предоставл€ет разработчикам удобный способ упаковки и отправки приложений конечным пользовател€м дл€ установки.


 ак работает Helm?

Helm и Kubernetes работают как клиент-серверное приложение.  лиент Helm отправл€ет ресурсы в кластер Kubernetes. —ерверна€ часть зависит от версии: Helm 2 использует Tiller, тогда как Helm 3 избавилс€ от Tiller и полностью полагаетс€ на Kubernetes API.

»ллюстраци€ архитектуры Helm 2 и Helm 3

„то такое Helm Charts?

„арты Helm (Helm Charts) Ч это пакеты Helm, состо€щие из файлов и шаблонов YAML, которые преобразуютс€ в файлы манифеста Kubernetes. „арты могут повторно использоватьс€ кем угодно и в любой среде, что уменьшает сложность и количество дубликатов. ѕапки имеют следующую структуру: —труктура папки Helm-чарта

 ак работают чарты Helm?

“ри основные концепции чартов Helm:

  1. „арт Ч предварительно настроенный шаблон ресурсов Kubernetes.
  2. –елиз Ч чарт, развернутый с помощью Helm в кластере Kubernetes.
  3. –епозиторий Ч общедоступные чарты.

–абочий процесс заключаетс€ в поиске чартов через репозитории и создании релизов путем установки чартов в кластеры Kubernetes.

—труктура чарта Helm

‘айлы и каталоги чарта Helm имеют определенную функцию:

Ќазвание “ип ‘ункци€
charts/  аталог  аталог дл€ управл€емых вручную зависимостей чарта.
templates/  аталог Ќаписанные на €зыке Go файлы шаблонов, объединенные с конфигурационными значени€ми из файла values.yaml и предназначенные дл€ генерации манифестов Kubernetes.
Chart.yaml ‘айл ћетаданные о чартах, такие как: верси€, им€, ключевые слова дл€ поиска и так далее.
LICENSE (опционально) ‘айл Ћицензи€ на чарт в текстовом формате.
README.md (опционально) ‘айл ”добочитаема€ информаци€ дл€ пользователей чарта.
requirements.yaml (опционально) ‘айл —писок зависимостей чарта.
values.yaml ‘айл Ќастройки чарта по умолчанию.

—оздавайте чарты Helm вручную или собирайте общедоступные чарты из репозиториев.

–епозитории чартов Helm

–епозитории содержат чарты, которые могут быть установлены или предоставлены дл€ доступа другим пользовател€м. Helm обеспечивает поиск напр€мую из клиента. —уществует два основных типа поиска:

  • helm search hub Ч поиск через Artifact Hub из множества репозиториев.
  • helm search repo Ч поиск через репозитории, добавленные в локальном клиенте Helm с помощью helm repo add.

Ѕез каких-либо фильтров в результатах поиска отображаютс€ все доступные чарты. „тобы уточнить запрос, добавьте условие поиска. Ќапример:

helm search hub wordpress
Ёкран вывода команды helm search hub wordpress

 огда найдете подход€щий чарт, установите его с помощью helm install.

–елизы чартов

ѕри установке чарта создаетс€ новый пакет.  оманда helm install принимает два аргумента:

helm install <release name> <chart name>

«апуск helm install выводит полезную информацию и указывает, следует ли вам предприн€ть какие-либо действи€ дл€ установки. „арты кастомизируемы и легко настраиваютс€ перед установкой. –елизы Helm легко поддерживать и откатывать в случае любых нежелательных изменений.


—кидки 50% в Merion Academy

¬ыбрать курс