Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Helm Charts: package manager pro Kubernetes

08. 11. 2016 2 min čtení CORE SYSTEMScloud

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.

helmkuberneteschartsdeploymentpackagingdevops