错误:安装错误:服务器找不到请求的资源HELM Kubenetes

时间:2019-09-24 07:24:53

标签: kubernetes kubernetes-helm

我做了什么
我在Helm上安装了

curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
helm init --history-max 200


遇到错误:

$HELM_HOME has been configured at /root/.helm.
Error: error installing: the server could not find the requested resource
  1. 该错误是什么意思?
  2. 我应该如何安装舵柄和耕作机?

Ubuntu版本:18.04
Kubernetes版本:1.16
头盔版本:

helm version
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Error: could not find tiller

更新
我尝试了@shawndodo的答案,但仍未安装分till器

helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm'
--output yaml | sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@' | kubectl apply -f -

更新2:
helm init --history-max 200在kubernetes 1.15版中工作

9 个答案:

答案 0 :(得分:17)

我遇到了同样的问题,然后我在here上找到了此答复。

helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@' | kubectl apply -f -

对我有用。您可以在本期中看到详细信息。

答案 1 :(得分:3)

不幸的是,正如我们在问题#6374上看到的那样,Helm无法使用Kubernetes的当前版本(1.16.0)

目前,我们可以通过选择较旧版本的Kubernetes来解决不兼容的问题。

从以前的版本开始minikube

要解决此问题,只需使用--kubernetes-version参数(Ref.)启动minikube设置版本:

minikube delete

minikube start --kubernetes-version=1.15.4

也尝试使用以下命令重新启动Helm:

helm init

此后,您将可以毫无问题地使用头盔。

答案 2 :(得分:1)

因此,分till是您的Helm客户与之交谈的服务器端组件(由于各种安全问题,分iller将在Helm 3中删除)。运行helm init时,Helm客户端会在您的kubectl当前设置要连接的集群上安装分er(请注意,要安装分er,您需要管理员访问集群,因为分er需要整个集群的管理员访问权限)。有许多不同的策略可用于分till:

  • 每个命名空间的耕种机:这是当您在单个命名空间中安装耕种机并且仅授予耕种对该命名空间的访问权(比赋予它群集范围的管理员更安全),您可以找到有关如何here的文章。
  • 无耕种机:这是在本地运行分er器时,需要导出HELM_HOST才能使用此分er器,分till器将使用在KUBECONFIG配置的kube配置,找到的更多信息here

答案 3 :(得分:1)

我遇到了相同的问题-与初始问题完全相同的配置: Ubuntu版本:18.04 Kubernetes版本:1.16

@shawndodo的回答对我不起作用。分er部署存在一些问题,并且分pod吊舱根本没有创建!

我尝试按照Helm文档-https://helm.sh/docs/using_helm/#from-canary-builds

中的说明从canary构建安装
helm init --canary-image --upgrade

前几天没有奏效,但再次尝试(使用新的金丝雀版本),今天(20191005)奏效。

我现在是否使用canary build遇到其他问题还有待观察,但我克服了初始化问题...

答案 4 :(得分:1)

我尝试了所有有关手动更改api版本的建议,以解决此问题,这消除了错误,但事后未正常运行。因此,就我而言,我删除了最新的minicube安装,并使用以下命令在Mac上安装了一个旧版本,如有必要,将minikube-darwin-amd64更改为minikube-linux-amd64:

curl -LO https://storage.googleapis.com/minikube/releases/v1.3.0/minikube-darwin-amd64 \
  && sudo install minikube-darwin-amd64 /usr/local/bin/minikube

这将我的kubernetes降级到头盔目前支持的v1.15.2。

答案 5 :(得分:0)

在开始使用头盔之前,我们需要在群集中安装分till。 helm init命令将分till安装在集群中,并且我们还需要在集群中为分er配置RBAC。 Here,您会发现您对k8s集群的需求所需的RBAC规则。

答案 6 :(得分:0)

  • kubectl版本:v1.16.0
  • helm版本:v2.14.3

    minikube start --memory=16384 --cpus=4
    
    helm init --service-account tiller --output yaml | sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@' | sed 's@  replicas: 1@  replicas: 1\n  selector: {"matchLabels": {"app": "helm", "name": "tiller"}}@' | kubectl apply -f -
    
    helm template istio-1.3.3/install/kubernetes/helm/istio-init --name istio-init --namespace istio-system | kubectl apply -f - 
    
    helm template istio-1.3.3/install/kubernetes/helm/istio --name istio --namespace istio-system | kubectl apply -f -
    

答案 7 :(得分:0)

尝试

apt-get upgrade helm对我来说有效。

答案 8 :(得分:-1)

helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@' | kubectl apply -f -