Helm: could not find tiller

Solution 1:

Try deleting your cluster tiller

kubectl get all --all-namespaces | grep tiller
kubectl delete deployment tiller-deploy -n kube-system
kubectl delete service tiller-deploy -n kube-system
kubectl get all --all-namespaces | grep tiller

Initialise it again:

helm init

Now add the service account:

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

This solved my issue!

Solution 2:

You don't have helm configured yet, use the following command:

helm init

This will create .helm with repository, plugins, etc, in your home directory.

Background: helm comes with client and server, if you have a different deployment environment, it might be possible that your helm server (known as tiller) is different, in that case, there are two ways to point to tiller

  • set environment variable TILLER_NAMESPACE
  • --tiller-namespace string namespace of Tiller (default "kube-system")

For more details check the helm READ.md file.

Solution 3:

You installed tiller into a non-default namespace, so you have to tell helm where to look.

helm --tiller-namespace tiller  version

Solution 4:

First of all you need to create service account for teller to use in helm:

kubectl -n kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller

To verify that Tiller is running:

kubectl get pods --namespace kube-system

DigitalOcean Reference