Гайды
Helm: чарты и управление релизами в Kubernetes
Структура чарта, install и upgrade, values и шаблоны, зависимости, хуки и лучшие практики секретов.
~10 мин чтения
Helm: чарты и управление релизами в Kubernetes
Helm — менеджер пакетов для Kubernetes: чарт — набор шаблонизированных YAML (Deployment, Service, ConfigMap…) + values.yaml для параметров. Один helm upgrade --install раскатывает релиз с версией и откатом. База k8s — Pods, Deployments и Services.
1. Структура чарта
mychart/
Chart.yaml # имя, версия чарта, appVersion
values.yaml # дефолты
templates/ # *.yaml с Go templates
templates/_helpers.tpl
helm create mychart — заготовка.
2. Установка и релиз
helm repo add bitnami https://charts.bitnami.com/bitnami
helm search repo redis
helm install my-redis bitnami/redis -f prod-values.yaml --namespace cache --create-namespace
helm list -n cache
helm upgrade my-redis bitnami/redis -f prod-values.yaml -n cache
helm rollback my-redis 1 -n cache
Релиз — именованная установка конкретной ревизии чарта.
3. values и шаблоны
В templates/deployment.yaml:
replicas: {{ .Values.replicaCount }}
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
Переопределение: -f, --set key=value, --set-json.
4. Зависимости чартов
Chart.yaml:
dependencies:
- name: postgresql
version: "15.x.x"
repository: "https://charts.bitnami.com/bitnami"
helm dependency update — скачивает в charts/.
OCI-реестры (helm push / helm install oci://...) — хранение чартов как артефактов рядом с контейнерами в ECR, GHCR, Harbor; удобно для приватных зависимостей и воспроизводимых версий без отдельного chart museum.
5. Хуки и тесты
Hooks (pre-install, post-upgrade) — Job'ы для миграций БД (осторожно с идемпотентностью).
helm test — pod проверки после установки.
6. Лучшие практики
- Версионируйте chart version и appVersion отдельно.
- Не храните секреты в values в Git — Sealed Secrets, External Secrets, CI inject.
- Используйте
helm lintиhelm templateв CI для валидации рендера.
values.schema.json (JSON Schema для values.yaml) ловит опечатки ключей и типы до деплоя; генераторы схем из комментариев в values упрощают поддержку.
7. Чек-лист
- Один values для dev, отдельный overlay для prod (kustomize/helmfile по вкусу).
- Политика upgrade: atomic, timeout, wait.
- Документируйте обязательные values в
values.schema.jsonпри необходимости.
Дальше: Ingress · GitOps с Argo CD · тег Helm