MLOps Path

3.4.1 · блок 3

Зачем Helm: chart, release, values

Зачем Helm: chart, release, values

Зачем это нужно

Deployment + Service + ConfigMap + HPA + NetworkPolicy — десятки YAML-файлов. Для dev нужно 2 реплики, для prod — 10, другой образ, другие лимиты памяти. Копировать папку manifests/ и править руками — ошибки и drift. Helm — менеджер пакетов для Kubernetes: один chart (шаблоны) + values (параметры окружения) = release (установленный экземпляр в кластере).

В курсе Helm — мост между Jenkins (образ собран) и GitOps (Argo CD синхронизирует desired state). Понимание chart/release/values обязательно для capstone и корпоративного MDP.

Основные идеи

Chart. Директория с Chart.yaml, values.yaml, папкой templates/ (Go templates). Описывает приложение целиком: Deployment, Service, Ingress, ServiceAccount, HPA.

Release. Именованная установка chart в namespace: helm install scorer ./scorer-chart -n ml-prod. Одна chart — много releases (scorer-dev, scorer-prod).

Values. Параметры по умолчанию в values.yaml; переопределение:


helm install scorer ./chart -f values-prod.yaml --set image.tag=128

Шаблонизация. В templates/deployment.yaml:


image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
replicas: {{ .Values.replicaCount }}

Helm рендерит YAML → helm template для preview без apply.

Revision history. Каждый helm upgrade — новая revision. helm rollback scorer 3 — откат (дублирует идею kubectl rollout undo, но для всего chart).

Helm 3. Release metadata в Secret в namespace (не Tiller как в Helm 2). CLI: install, upgrade, uninstall, list, history.

Зачем не голый kubectl kustomize? Оба решают параметризацию. Helm силён в пакетировании, версионировании chart, dependency (Chart.yaml dependencies), registry chart (OCI), экосистеме готовых charts. В курсе — Helm как стандарт MDP.

Связь с ML. Values хранят: image.tag из Jenkins, model.s3Uri, resources.limits.memory, autoscaling.maxReplicas. DS не редактирует templates — только согласованные values через MR.

Как это выглядит на практике

Поток:

1. Jenkins push registry/ml/scorer:128.

2. MR в Git repo helm-scorer: values-prod.yamlimage.tag: "128".

3. helm upgrade --install scorer ./charts/scorer -f values-prod.yaml -n ml-prod.

4. Или Argo CD Application следит за этим repo и sync автоматически.

Локальная проверка:


helm template scorer ./charts/scorer -f values-dev.yaml | kubectl apply -f -
helm lint ./charts/scorer

Chart vs release: chart — «рецепт пирога» в Git; release — «пирог на столе» в кластере с именем scorer.

Что сделать после занятия

Официальные материалы

Открыть интерактивную версию