5.4 Helm
Helm является менеджером пакетов для Kubernetes, который упрощает процесс развертывания и управления приложениями в кластерах Kubernetes. Он представляет собой систему, которая позволяет разработчикам упаковывать приложения в единые пакеты, известные как чарты (charts), которые могут быть легко установлены, обновлены и удалены в кластере Kubernetes.
Основные преимущества Helm включают:
- Упрощение развертывания сложных приложений: Helm позволяет развертывать приложения как набор предварительно настроенных ресурсов Kubernetes с установленными версиями, что сокращает усилия и упрощает процесс развертывания.
- Богатая экосистема чартов: Helm дает доступ к обширной библиотеке чартов, созданных сообществом, что позволяет легко находить готовые решения для развертывания различных приложений и сервисов.
- Повторяемость и стандартизация: Использование чартов обеспечивает повторяемость и стандартизацию процесса развертывания приложений, что важно для непрерывной интеграции и непрерывной доставки (CI/CD).
- Управление релизами: Helm позволяет легко управлять различными версиями приложений, обновлять их и откатывать к предыдущим версиям при необходимости.
Основные команды
Работа с релизами
- RELEASE - это имя релиза, к которому вы хотите выполнить откат.
- [REVISION] - это номер ревизии, к которой вы хотите откатиться. Если этот аргумент опущен или установлен на 0, команда откатит релиз к предыдущему состоянию.
- [flags] - дополнительные флаги, которые можно использовать с командой, например --dry-run для предварительного просмотра изменений без их применения.
Шаблонизатор
Шаблонизатор Helm использует Go шаблоны для генерации манифестов Kubernetes из чартов. Это позволяет разработчикам создавать динамические и настраиваемые манифесты на основе конфигураций, определенных в values.yaml файле чарта. Шаблонизатор поддерживает различные функции такие как циклы, условия и переменные, что делает его мощным инструментом для создания сложных манифестов.
Вставка
Создание своего helm chart
Основные файлы в Helm чарте и их назначение включают:
- Chart.yaml: Этот файл содержит метаданные о чарте, включая его версию, имя, описание.
- values.yaml: Этот файл содержит значения по умолчанию для переменных, используемых в шаблонах чарта.
- templates/: В этой директории хранятся манифесты Kubernetes.
- charts/: Если ваш чарт зависит от других чартов, вы можете указать эти зависимости в этой директории.
- NOTES.txt: в Helm чарте используется для предоставления пользователям информации после успешного развертывания чарта. Этот файл может содержать полезные сведения, такие как доступные URL-адреса, учетные данные для доступа, шаги для последующей настройки или любую другую информацию, которая может помочь пользователям в работе с развернутым приложением или сервисом.
Файл _helpers.tpl помогает упростить и повторно использовать код в шаблонах чарта, делая их более читаемыми и поддерживаемыми.