img

Что такое Helm и Helm Charts?

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

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 легко поддерживать и откатывать в случае любых нежелательных изменений.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии про
img
Docker — популярная платформа виртуализации на уровне ОС. Она поставляет приложения в пакетах (контейнерах), которые, представля
img
Хуки в Git — это bash-скрипты, которые запускаются до или после команд Git, например, коммитов и пушей. Они позволяют автоматизи
img
  Nomad и Kubernetes – это две самые популярные платформы оркестровки, предназначенные для оркестровки динамических рабочих нагр
img
  Давайте узнаем о новом Ops-течении – GitOps! DevOps поспособствовал цифровизации многих компаний. Речь идет о командах разрабо
img
  Канареечное (canary) развёртывание – это метод разработки и развертывания программного обеспечения, который позволяет выпускат
21 ноября
20:00
Бесплатный вебинар
Введение в Docker