Helm zjednodušuje deployment aplikací do Kubernetes — parametrizované šablony, verzování a sdílení přes chart repository. Od manuálních YAML souborů k reprodukovatelným deploymentům.
YAML hell v Kubernetes¶
Deployment aplikace do Kubernetes vyžaduje desítky YAML souborů — Deployment, Service, ConfigMap, Secret, Ingress, PVC. Pro každé prostředí (dev, staging, prod) se liší hodnoty ale struktura je stejná.
Helm řeší tento problém — je to package manager pro Kubernetes. Chart je balíček parametrizovaných šablon, Values soubor definuje konfiguraci pro konkrétní prostředí.
Anatomie Helm chartu¶
Helm chart struktura:
Chart.yaml # Metadata chartu
values.yaml # Výchozí hodnoty
templates/
deployment.yaml # Kubernetes Deployment šablona
service.yaml # Service šablona
ingress.yaml # Ingress šablona
_helpers.tpl # Sdílené template funkce
Šablona s Go template syntax:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-{{ .Chart.Name }}
spec:
replicas: {{ .Values.replicaCount }}
template:
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
resources:
limits:
cpu: {{ .Values.resources.limits.cpu }}
memory: {{ .Values.resources.limits.memory }}
Helm workflow¶
Základní Helm příkazy:
# Instalace chartu
helm install my-release ./my-app \
--set image.tag=v1.2.3 \
--values production-values.yaml
# Upgrade
helm upgrade my-release ./my-app \
--set image.tag=v1.3.0
# Rollback
helm rollback my-release 1
# Seznam releases
helm list
Helm udržuje historii releases — rollback na předchozí verzi je jedním příkazem. Release je instance chartu v clusteru.
Chart repository a sdílení¶
Helm charts lze sdílet přes repository — obdoba npm registry pro Kubernetes:
- stable/** — oficiální community charts (nginx, PostgreSQL, Redis, Prometheus)
- Privátní repository** — ChartMuseum nebo S3-based pro interní charty
- Dependencies** — chart může záviset na jiných chartech (requirements.yaml)
Kombinace Helm + CI/CD pipeline = reprodukovatelné, auditovatelné deploymenty across všechna prostředí.
Závěr: standard pro Kubernetes deployment¶
Helm se stává de facto standardem pro packaging a deployment Kubernetes aplikací. Parametrizované šablony, verzování a rollback výrazně zjednodušují operace. Pro každý Kubernetes projekt doporučujeme Helm charts od začátku.