Helm: пакеты для Kubernetes
Коротко: Менеджер пакетов для Kubernetes, объединяющий множество связанных YAML-файлов как «chart» и устанавливающий их с настраиваемыми значениями.
Подробнее: Приложение в Kubernetes часто состоит из множества ресурсов: deployment, service, config map, ingress и других. Helm объединяет их в chart. Командой helm install chart развёртывается, а значения вроде версии образа или числа реплик легко настраиваются.
Подробности
Термины
- Chart: пакет с шаблонами и значениями по умолчанию (
values.yaml). - Release: установленный экземпляр chart с именем.
- Репозиторий (repository): коллекция опубликованных chart (например, для баз данных или мониторинга).
- Значения (values): настройки, заполняющие шаблоны.
Типичные команды
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-db bitnami/postgresql --set auth.postgresPassword=secret
helm upgrade my-db bitnami/postgresql -f my-values.yaml
helm rollback my-db 1
helm uninstall my-db
upgrade изменяет существующий release, rollback восстанавливает более раннюю версию. В реальной эксплуатации пароли не должны находиться в командной строке.
Шаблоны
Шаблоны используют язык шаблонов Go. Фрагмент:
replicas: {{ .Values.replicaCount }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"Так один chart с разными значениями становится вариантом для тестирования и вариантом для production.
Альтернативы
Kustomize (встроен в kubectl) работает без языка шаблонов, с помощью наложений (overlay) на YAML-файлы. Многие команды сочетают оба или используют инструменты GitOps, которые сами применяют chart Helm. Chart из сторонних источников стоит проверять перед использованием, так как они могут создавать права в кластере.
См. также: Основы Kubernetes, GitOps, Инфраструктура как код