Met de packagemanager Helm kan je overzichtelijk je applicaties uitrollen en beheren op je Kubernetes cluster. In deze handleiding lees je hoe je Helm en Tiller kunt installeren op je cluster. Helm is de client die je lokaal draait, Tiller is de server die in je Kubernetes cluster draait. Bij iedere opdracht die je aan Helm geeft, communiceert je Helm-client met de Tiller-server. In onderstaande handleiding gaan we ervan uit dat je gebruik maakt van RBAC, dat kubectl reeds geconfigureerd is en dat Tiller toegang mag krijgen tot alle namespaces in je cluster, zodat je in iedere namespace applicaties kunt installeren.

Helm & tiller installeren

  1. Download de laatste binary versie van Helm op https://github.com/kubernetes/helm/releases
  2. Voor OS X en Linux-gebruikers: pak het gedownloade bestand uit:

    tar -zxvf helm-vX.X.X-XXXX.tar.gz

  3. Verplaats de binary die uit het .tar.gz-archief tevoorschijn komt naar een map die onderdeel is van je PATH, bijvoorbeeld /usr/local/bin. Daardoor kan je het commando helm overal in de terminal uitvoeren:

    sudo mv helm /usr/local/bin/

  4. Initialiseer tiller in je cluster:

    helm init

Tiller configureren

Afhankelijk van de chart die je installeert, zal Tiller proberen ClusterRoles en Namespaces aan te maken. Als je gebruik maakt van RBAC, dan is het van belang dat je Tiller een service account gebruikt dat de juiste rechten heeft. Wil je Tiller volledige rechten geven om Namespaces, ClusterRoles en Bindings aan te maken, dan moet Tiller gebruik maken van een service account met de rol cluster-admin.

  1. Maak een service account aan voor Tiller:

    kubectl create serviceaccount –namespace kube-system tiller

  2. Maak een ClusterRoleBinding waarmee je het zojuist aangemaakte service account de rol cluster-admin toekent:

    kubectl create clusterrolebinding tiller-cluster-rule –clusterrole=cluster-admin –serviceaccount=kube-system:tiller

  3. De eerder in deze handleiding uitgerolde deployment tiller-deploy moet nu weten weten dat het gebruikt dient te maken van het serviceaccount tiller. Dat doen we door de deployment te patchen:

    kubectl patch deployment –namespace kube-system tiller-deploy -p ‘{“spec”:{“template”:{“spec”:{“serviceAccount”:”tiller”}}}}’

Helm in productie gebruiken

Helm is een volwaardige packagemanager voor Kubernetes en heeft de steun van grote partijen als Google, Microsoft en Bitnami achter zich. Het is veilig om Helm in productie te gebruiken. Dat betekent niet automatisch dat de Charts en de images die je gebruikt om je applicatie uit te rollen dat ook zijn. Zorg er daarom voor dat de charts die je gebruikt voldoen aan de eisen die je stelt aan je productieomgeving. Kies je ervoor om je eigen chart te maken? Lees dan vooral eerst de Chart Best Practices.

Ga je aanpassingen doen in bestaande charts die je uit één van de Helm-repositories haalt? Dan is het raadzaam om je eigen versie van die chart onder versiebeheer te brengen. Hoewel Kubernetes erg goed overweg kan met rollbacks, wil je zelf ook controle houden over alle wijzigingen die je aanbrengt in je resources.

Aan de slag

Heb je bovenstaande stappen zonder fouten doorlopen? Dan kan je aan de slag met Helm! Ben je wel foutmeldingen tegengekomen of heb je hulp nodig met het inzetten van Helm? Wij helpen je graag verder! Neem contact met ons op.