Helm 3, Tillerless Helm

#kubernetes #helm

Helm asi znáte, je to balíčkovací nastro pro Kubernetes. Ted ale přišel zásadní release v podobě verze 3 a já Vám ukážu novinky a rozdíly oproti předchozí verzi, které mě zaujali.

Tillerless Helm

Největší a asi i nejočekávanější novinkou je to že Helm 3 už je čistě client, nepotřebuje se instalovat do clusteru (Tiller). Pro mě je to skvělá zpráva a možnost začít používat Helm na plno.

Dříve jsem Helm používal primárně jako Template engine, protože jsem nasazoval tímto stylem:

helm template ./helm/myapp --name myapp.cz --set host=myapp.cz | kubectl apply -f -

Výhodou byla absence nutnosti Tilleru (části Helmu běžící v clusteru) a nevýhodou bylo to že se to nechovalo jako jeden balíček a pořád jsem to musel spravovat ručně (pomocí kubectl). Další nevýhodou bylo to že helm neuměl vyrenderovat template z balíčku v repozitari, také jsem musel mít zdrojaky součástí repozitare, který z Gitlab CI nasazoval, anebo nějak stažené.

To se teď mění. Mužů používat Helm i jako správě nasazených aplikaci.

Nasazování přímo z Helmu

Když nasazují přímo z Helmu, mám několik možnosti a vasechny jsou pěkně:

Podle Chartu

helm repo add ondrejsika https://helm.oxs.cz
helm install hello ondrejsika/one-image --set hello.k8s.sikademo.com

Ze zdroje Chartu

helm install hello2 ./helm/one-image --set hello2.k8s.sikademo.com

Z archivu Chartu

helm install hello3 ./one-image.tgz --set hello3.k8s.sikademo.com

Z archivu Chartu na webu

helm install hello4 https://helm.oxs.cz/one-image-1.1.1.tgz --set hello4.k8s.sikademo.com

Z Chartu ve specifickém repozitari

helm install hello5 --repo https://helm.oxs.cz one-image --set hello5.k8s.sikademo.com

Helm Upgrade

Příkaz helm upgrade se chová stejně jako ve verzi 2, ale díky nové struktuře helm install to celé dává větší smysl. Zároveň pořád funguje parametr --install tazke můžete pořád používat klasický install upgrade, což je obdoba helm template ... | kubectl apply ....

helm upgrade --install nginx ondrejsika/one-image --set image=nginx --set host=nginx.k8s.sikademo.com

a samotný upgrade:

helm upgrade nginx ondrejsika/one-image --set image=nginx:alpine --set host=nginx.k8s.sikademo.com

Helm Uninstall místo Helm Delete

Helm 3 má příkaz helm uninstall, který nahrazuje helm delete redis --purge. Po odinstalování můžete rovnou nasadit nový chart pod stejným jménem.

Pokud chcete zachovat historii (dříve bez parametrů --purge), teď musíte přidat parametr --keep-history

Helm Status

Příkaz helm status neukazuje resources jak jsme byli zvyklí z Helm 2, je to spíš feature než bug, ale podle diskuze na Githubu se tam možná tato funkcionalita vrátí.

Dá se to vyřešit pomocí těchto způsobu:

helm get manifest hello | kubectl get -f -

Nebo na to Marc Khouzam napsal plugin do Helmu, který vypíše jak status tak ten kubectl get .... Stačí nainstalovat:

helm plugin install https://github.com/marckhouzam/helm-fullstatus

A pustit:

helm fullstatus hello

Ostatní změny v CLI

  • helm init je odstraněn, není potřeba ;)
  • helm inspect -> helm show
  • helm fetch -> helm pull

Závěr

Helm 3 je jednoznačně super, splnil všechny mě očekávání. Myslím, že řada lidí nechtěla používat Helm kvůli Tilleru, teď už to není důvod. Helm 3 používám už nějakou dobu jako beta & RC a jsem s ním naplno spokojený.

Zdroje

Školení Kubernetes

Zaujal Vás Kubernetes? Chcete se dozvědět více? Přijďte na mé Školení Kubernetes!

Případně si můžete vybrat z nabídky otevřených kurzů.

Ondřej Šika

Jsem freelance DevOps konzultant a lektor. Zlepšuji práci vývojářských týmu zaváděním efektivních procesů ve vývoji. Naučím Vás používat prověřené nástroje a technologie, které povedou k rychlejšímu vývoji a bezpečnějšímu provozu vašeho software.

Ondrej Sika

ondrej@sika.io 📋
skoleni@sika.io 📋
+420 773 452 376 📋

Company ID
88114163 📋

VAT ID
CZ9302252102 📋

Zajímají Vás novinky?

Odebírejte můj newsletter a budete v obraze!

Website by Zuzana Jeschke