头盔:找不到分till

时间:2018-08-02 06:35:06

标签: openshift kubernetes-helm

我收到此错误消息:

➜  ~ helm version
Error: could not find tiller

我已经创建了tiller个项目:

➜  ~ oc new-project tiller
Now using project "tiller" on server "https://192.168.99.100:8443".

然后,我在tiller命名空间中创建了tiller

➜  ~ helm init --tiller-namespace tiller
$HELM_HOME has been configured at /home/jcabre/.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
Happy Helming!

因此,在那之后,我一直在等待tiller吊舱准备就绪。

➜  ~ oc get pod -w
NAME                             READY     STATUS    RESTARTS   AGE
tiller-deploy-66cccbf9cd-84swm   0/1       Running   0          18s
NAME                             READY     STATUS    RESTARTS   AGE
tiller-deploy-66cccbf9cd-84swm   1/1       Running   0          24s
^C%               

有什么想法吗?

8 个答案:

答案 0 :(得分:15)

尝试删除群集分till

$ 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

再次初始化

$ helm init

现在添加服务帐户

$ 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"}}}}'

这解决了我的问题!

答案 1 :(得分:10)

您尚未配置头盔,请使用以下命令:

helm init

这将在您的主目录中使用.helmrepository等创建plugins

背景: helm随客户端和服务器一起提供,如果您具有不同的部署环境,则您的掌舵服务器(称为tiller)可能会有所不同,在这种情况下,有两种指向方法tiller

  • 设置环境变量TILLER_NAMESPACE
  • --tiller-namespace Tiller的字符串名称空间(默认为“ kube-system”)

有关更多详细信息,请检查helm READ.md文件。

答案 2 :(得分:6)

您已将分installed安装到非默认名称空间中,因此必须告诉舵机在哪里查找。

helm --tiller-namespace tiller  version

答案 3 :(得分:1)

我遇到了同样的问题,请尝试使用以下命令重新安装头盔:

对于Linux :(通过Snap)

sudo snap install helm --classic

对于Linux(来自二进制源):

  1. 下载所需版本
  2. 打开包装(tar -zxvf helm-v2.0.0-linux-amd64.tgz)
  3. 在解压后的目录中找到helm二进制文件,并将其移至所需的目标位置 (mv linux-amd64/helm /usr/local/bin/helm)

对于MacOS(通过Brew):

brew install kubernetes-helm

对于Windows(通过Chocolatey):

choco install kubernetes-helm

最后,将helm初始化:

helm init

答案 4 :(得分:1)

首先,您需要创建供柜员使用的服务帐户:

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

要验证Tiller是否正在运行:

kubectl get pods --namespace kube-system

DigitalOcean Reference

答案 5 :(得分:1)

随着头盔3的发布,我们不再需要分till。尝试将Helm版本升级到3。它为您的群集提供了更高的安全性。因为分er器具有完全的管理权限在您的Kubernetes群集中运行,如果有人未经授权访问该群集,则存在风险。 如果您迁移到helm3,则此后无需执行helm init,因为helm版本3是无耕种的体系结构。

答案 6 :(得分:0)

现在,您可以升级到最新版本的Helm或任何3.0.0以上的版本。 您不需要

helm init

开始使用头盔时,将自动初始化Tiller和客户端目录。如上所述here

答案 7 :(得分:0)

尝试

cp /usr/local/bin/tiller ~/.helm/

并检查头盔是否部署在服务器上

helm version