Helm — это пакетный менеджер для Kubernetes, предназначенный для упрощения развертывания, обновления и управления приложениями в контейнерной оркестрации. Он использует концепцию «chart» — набора конфигурационных файлов и шаблонов манифестов Kubernetes — которые инкапсулируют все необходимые ресурсы для запуска конкретного приложения или сервиса. Charts позволяют повторно использовать, версионировать и распространять конфигурации, обеспечивая более предсказуемое и воспроизводимое поведение при развёртывании в разных средах.
Инструмент обеспечивает абстракцию над низкоуровневыми объектами Kubernetes, предоставляя команды для установки, обновления, отката и удаления пакетов приложений, а также для управления зависимостями между ними. Helm поддерживает систему репозиториев для хранения и обмена chart'ами, возможности параметризации через значения (values) и шаблонизацию манифестов, что упрощает настройку приложений под конкретные окружения. Внедрение Helm облегчает практики непрерывной доставки и инфраструктурного кодирования при работе с кластерами Kubernetes.
- Пакетизация — упаковка Kubernetes-ресурсов в chart для повторного использования и распространения.
- Шаблонизация — поддержка динамической генерации манифестов с параметрами через values-файлы.
- Версионирование — управление версиями chart'ов и отслеживание изменений конфигураций.
- Управление зависимостями — определение и автоматическое разворачивание зависимых chart'ов.
- Репозитории — хранение и распространение chart'ов через репозитории.
- Команды CLI — набор команд для установки, обновления, отката и удаления релизов приложений.
- Откат (rollback) — возврат к предыдущим версиям развертывания при ошибках.
- Поддержка релизов — управление состоянием и метаданными развернутых пакетов в кластере.
- Интеграция с CI/CD — используется в конвейерах для автоматизации развёртываний и обновлений.
- Параметризация окружений — разделение конфигураций для dev, staging и production через values-файлы.