Installing Helm on your Kubernetes cluster

July 16, 2019

First, install the helm tool on your mac:

$ brew install kubernetes-helm
==> Downloading https://homebrew.bintray.com/bottles/kubernetes-helm-2.14.1.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/5b/5baa398cf74033266bddd81709d0be52095ceab4f02d63b4f2a990545ea58c28?__gda__=exp=1561708889~hmac=8f6bd0379b36fbbd7eb58c6ff4fd3873ef36c79f4674f1ee2de10a9c9b374f48&response-content-disposition=attachment%
######################################################################## 100.0%
==> Pouring kubernetes-helm-2.14.1.mojave.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completions have been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/kubernetes-helm/2.14.1: 51 files, 91.6MB

Then, you need to create the tiller service account:

$ kubectl -n kube-system create serviceaccount tiller
serviceaccount/tiller created

Next, bind the tiller service account to the cluster-admin role:

$ kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
clusterrolebinding.rbac.authorization.k8s.io/tiller created

After the install, you need to initialize the install:

$ helm init --service-account tiller
Creating /Users/myuser/.helm 
Creating /Users/myuser/.helm/repository 
Creating /Users/myuser/.helm/repository/cache 
Creating /Users/myuser/.helm/repository/local 
Creating /Users/myuser/.helm/plugins 
Creating /Users/myuser/.helm/starters 
Creating /Users/myuser/.helm/cache/archive 
Creating /Users/myuser/.helm/repository/repositories.yaml 
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com 
Adding local repo with URL: http://127.0.0.1:8879/charts 
$HELM_HOME has been configured at /Users/pclaerhout/.helm.

Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.

Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.
To prevent this, run `helm init` with the --tiller-tls-verify flag.
For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation

You can check if it’s running by checking if the pod is running:

$ kubectl get pods --namespace kube-system
NAME                                    READY   STATUS    RESTARTS   AGE
coredns-85c4d4c5d8-mvzrw                1/1     Running   0          68m
coredns-85c4d4c5d8-slnh2                1/1     Running   0          60m
coredns-autoscaler-7b6f68868f-hm5sv     1/1     Running   0          68m
kube-proxy-dvlz9                        1/1     Running   0          61m
kube-proxy-rdbvf                        1/1     Running   0          61m
kube-proxy-zdk4h                        1/1     Running   0          61m
kubernetes-dashboard-6975779c8c-gs78v   1/1     Running   1          68m
metrics-server-5dd76855f9-zsc84         1/1     Running   1          68m
omsagent-6ffwk                          1/1     Running   0          61m
omsagent-h2skv                          1/1     Running   0          61m
omsagent-rs-676f95bc4b-jp8x7            1/1     Running   0          68m
omsagent-tsfml                          1/1     Running   0          61m
tiller-deploy-9bf6fb76d-t5gmn           1/1     Running   0          46s
tunnelfront-997bf4cdb-jjh2f             1/1     Running   0          68m

The official install guide can be found here.