img

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

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
  В современном технологическом мире контейнерные технологии используются везде. Самой популярной платформой для управления конт
img
  На сегодняшний день контейнеры – это то, без чего не обходится запуск приложений. А самая популярная контейнерная технология
img
Введение Разработчик при написании кода должен быть максимально продуктивным. Однако бывают ситуации, когда им приходится выпо
img
  Kubernetes стал незаменимым инструментом для оркестровки, масштабирования, автоматического развертывания и управления контей
img
  С помощью контейнеров вы можете упаковать свое приложение и сделать его, таким образом, переносимым. В результате оно сможет р
img
Введение Kubernetes – это платформа, которая предоставляет возможность работать с модулями, службами и внешними ресурсами и пр
Комментарии
ЛЕТНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59