kubernetes install_error ai_generated true

Error: could not find tiller: the server could not find the requested resource

ID: kubernetes/helm-install-tiller-not-found

Also available as: JSON · Markdown · 中文
90%Fix Rate
85%Confidence
1Evidence
2023-06-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
Helm v2.16 active — — —
Helm v2.17 active — — —
Kubernetes v1.16 active — — —

Root Cause

Helm v2 client is trying to connect to Tiller server which is not installed in the cluster.

generic

中文

Helm v2 客户端尝试连接到集群中未安装的 Tiller 服务器。

Official Documentation

https://helm.sh/docs/topics/tiller/

Workarounds

  1. 90% success Install Tiller in cluster: `kubectl create serviceaccount --namespace kube-system tiller && kubectl create clusterrolebinding tiller --clusterrole=cluster-admin --serviceaccount=kube-system:tiller && helm init --service-account tiller`.
    Install Tiller in cluster: `kubectl create serviceaccount --namespace kube-system tiller && kubectl create clusterrolebinding tiller --clusterrole=cluster-admin --serviceaccount=kube-system:tiller && helm init --service-account tiller`.
  2. 95% success Upgrade to Helm v3 which removes Tiller dependency: `brew upgrade helm` or download latest binary, then migrate releases: `helm 2to3 convert <release>`.
    Upgrade to Helm v3 which removes Tiller dependency: `brew upgrade helm` or download latest binary, then migrate releases: `helm 2to3 convert <release>`.
  3. 85% success If using Helm v2, check Tiller pod: `kubectl get pods -n kube-system | grep tiller`. If missing, deploy with `helm init`.
    If using Helm v2, check Tiller pod: `kubectl get pods -n kube-system | grep tiller`. If missing, deploy with `helm init`.

中文步骤

  1. Install Tiller in cluster: `kubectl create serviceaccount --namespace kube-system tiller && kubectl create clusterrolebinding tiller --clusterrole=cluster-admin --serviceaccount=kube-system:tiller && helm init --service-account tiller`.
  2. Upgrade to Helm v3 which removes Tiller dependency: `brew upgrade helm` or download latest binary, then migrate releases: `helm 2to3 convert <release>`.
  3. If using Helm v2, check Tiller pod: `kubectl get pods -n kube-system | grep tiller`. If missing, deploy with `helm init`.

Dead Ends

Common approaches that don't work:

  1. Reinstall Helm client via brew/apt without upgrading 90% fail

    Client version doesn't matter; Tiller must be deployed separately.

  2. Set HELM_HOST environment variable to a random IP 95% fail

    Tiller must be a running pod in the cluster, not an arbitrary IP.

  3. Use `helm init --client-only` to install client only 90% fail

    Client-only mode does not deploy Tiller; you still need Tiller running.