Helm — Kubernetes Package Manager
Helm je package manager pre Kubernetes, ktorý zjednodušuje inštaláciu a správu aplikácií v klastri. Namiesto desiatkov YAML súborov spravujete aplikáciu ako jeden balík — chart — s konfigurovateľnými hodnotami.
Čo je Helm?
Kubernetes aplikácie sa skladajú z mnohých objektov — Deployments, Services, ConfigMaps, Ingress. Helm tieto objekty zabalí do jedného chartu, ktorý sa dá inštalovať, aktualizovať a rollbackovať jedným príkazom.
- Templatovanie — dynamické YAML s premennými
- Verzionovanie — každá inštalácia je release s históriou
- Zdieľanie — charty sa publikujú do repozitárov
- Dependency management — chart môže závisieť na iných chartoch
Ako Helm funguje
- Chart — balík obsahujúci šablóny Kubernetes manifestov
- Values — konfiguračné hodnoty, ktoré sa dosadzujú do šablón
- Release — konkrétna inštalácia chartu v klastri
- Repository — kolekcia chartov (Artifact Hub, vlastné repo)
Helm renderuje šablóny s hodnotami a aplikuje výsledné manifesty na klaster.
Štruktúra chartu
my-app/
├── Chart.yaml # metadata (meno, verzia)
├── values.yaml # predvolené hodnoty
├── templates/
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── ingress.yaml
│ └── _helpers.tpl # šablónové funkcie
└── charts/ # závislosti
Príklad šablóny
# templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-app
spec:
replicas: {{ .Values.replicaCount }}
template:
spec:
containers:
- name: app
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
ports:
- containerPort: {{ .Values.service.port }}
# values.yaml
replicaCount: 3
image:
repository: nginx
tag: "1.25"
service:
port: 80
Základné príkazy
helm install my-release ./my-chart— nainštaluje charthelm upgrade my-release ./my-chart— aktualizuje releasehelm rollback my-release 1— vráti sa na predchádzajúcu verziuhelm list— zobrazí nainštalované releasyhelm repo add bitnami https://charts.bitnami.com— pridá repozitár
Praktické použitie
- Nasadenie komplexných aplikácií (PostgreSQL, Redis, Kafka) jedným príkazom
- Rôzne konfigurácie pre dev/staging/production cez values súbory
- Zdieľanie interných aplikácií ako chartov v tímovom repozitári
- Integrácia s CI/CD pre automatizované nasadenia
Best Practices
- Používajte
helm diffplugin na náhľad zmien pred upgrade - Udržiavajte values súbory pre každé prostredie zvlášť
- Verzionujte charty sémantickým verzionovaním
- Využívajte Helm hooks pre migrácie a inicializačné úlohy
- Testujte charty s
helm templateahelm lint - Zvážte Helmfile pre správu viacerých releasov naraz
Helm je neoddeliteľnou súčasťou Kubernetes ekosystému a výrazne zjednodušuje správu aplikácií v klastri.