Zum Inhalt springen
_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Helm — package manager pro Kubernetes

22. 02. 2017 2 Min. Lesezeit CORE SYSTEMSai
Helm — package manager pro Kubernetes

Psát YAML manifesty pro každý Kubernetes deployment ručně je únavné a chybové. Helm slibuje šablonování, verzování a sdílení Kubernetes konfigurací. Po měsíci používání sdílíme naše zkušenosti.

Problém, který Helm řeší

Typická aplikace v Kubernetes potřebuje Deployment, Service, ConfigMap, Secret, Ingress, PersistentVolumeClaim… To je snadno 200+ řádků YAML. A když máte deset prostředí (dev, staging, produkce × klienti), začnete copy-pastovat a brzy se v tom ztratíte.

Helm zavádí koncept chartu — balíčku šablon s parametry. Jeden chart, různé values pro různá prostředí. Verzovaný, sdílitelný, testovatelný.

Architektura Helm 2

Helm 2 má dvě komponenty: helm (CLI klient) a Tiller (server-side komponenta běžící v clusteru). Tiller drží stav releases a aplikuje změny do clusteru.

Tiller je kontroverzní — běží s cluster-admin právy a je potenciální security riziko. Řešíme to pomocí TLS certifikátů a namespace-scoped Tiller instancí.

$ helm init --tiller-tls --tiller-tls-verify
$ helm install stable/prometheus \
    --name monitoring \
    --namespace observability \
    --values prod-values.yaml

Náš první vlastní chart

Vytvořili jsme generický chart pro Java microservices. Parametrizuje se image name, repliky, resource limits, environment variables, ingress host. Jeden chart pro všechny naše Spring Boot služby.

myapp-chart/
  Chart.yaml          # metadata
  values.yaml         # defaultní hodnoty
  templates/
    deployment.yaml   # Go template
    service.yaml
    ingress.yaml
    configmap.yaml

Stable repository — poklady komunity

Helm má oficiální repository stabilních chartů. Prometheus, Grafana, nginx-ingress, Jenkins, Redis, PostgreSQL — vše připravené k nasazení. Kvalita se liší, ale jako základ k úpravě je to vynikající.

Lessons learned

  • Verzujte charty — semantic versioning, jako knihovny
  • Vlastní chart repository — ChartMuseum pro interní charty
  • Helm test — pište testy pro své charty
  • Linthelm lint chytí spoustu chyb ještě před deployem
  • Dry runhelm install --dry-run --debug pro review generovaných manifestů

Helm je must-have pro Kubernetes

Bez Helm bychom se v YAML manifestech utopili. Tiller není dokonalý a security model má mezery, ale produktivita, kterou Helm přináší, je obrovská. Sledujeme diskuze o Helm 3, který by měl Tiller odstranit úplně.

helmkubernetesdevopscharts
Teilen:

CORE SYSTEMS

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.

Brauchen Sie Hilfe bei der Implementierung?

Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.

Kontaktieren Sie uns