Helm:客户端和服务器之间的版本不兼容

时间:2018-06-05 13:23:08

标签: kubernetes kubernetes-helm

我运行helm list后出现以下错误:

  

错误:不兼容的版本客户端[v2.9.0]服务器[v2.8.2]

我做了一个helm init来安装兼容的分蘖版本 "警告:Tiller已安装在群集中。 (使用--client-only来抑制此消息,或者--upgrade将Tiller升级到当前版本。)"。

任何指针?

10 个答案:

答案 0 :(得分:28)

像OP一样,我遇到此错误:

$ helm list
Error: incompatible versions client[v2.10.0] server[v2.9.1]

更新服务器不是我的选择,因此我需要准备安装客户端的早期版本。我以前没有安装过client [v2.9.1](或任何以前的客户端版本),因此不能仅仅安装brew switch kubernetes-helm 2.9.1。我最终不得不按照以下答案中的步骤操作:https://stackoverflow.com/a/17757092/2356383

基本上说

现在我有了正确的kubernetes-helm.rb文件的URL,我运行以下命令:

$ brew unlink kubernetes-helm
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/78d64252f30a12b6f4b3ce29686ab5e262eea812/Formula/kubernetes-helm.rb
$ brew switch kubernetes-helm 2.9.1

希望这对某人有帮助。

答案 1 :(得分:21)

要将您的分蘖版本升级到相同版本的客户端,只需运行helm init --upgrade

即可

答案 2 :(得分:6)

通过Docker使用不同版本的另一种方法。

https://hub.docker.com/r/alpine/helm

示例:列出已安装的头盔包

docker run -it --rm \
    -v ~/.kube/config:/root/.kube/config \
    -v ~/.helm:/root/.helm alpine/helm:2.9.1 \
    list

这是一个很长的命令;但可以用别名来缩短

alias helm_2_9_1="docker run -ti --rm \
    -v $(pwd):/apps -v ~/.kube/config:/root/.kube/config \
    -v ~/.helm:/root/.helm alpine/helm:2.9.1"

然后命令是

helm_2_9_1 list

答案 3 :(得分:2)

如果不能更改服务器版本,另一种选择是使用 helm installer script

该脚本可让您选择特定的版本,如下所示 ./get_helm.sh -v v2.13.1

答案 4 :(得分:2)

此答案适用于想要选择(降级)头盔客户端版本的用户,并且brew安装不起作用。您只需手动安装here中的二进制文件即可。

示例:

  1. 您可以取消当前头盔的链接

    brew unlink kubernetes-helm
    
  2. github helm ------ v2.8.2

  3. 中选择并下载所需的头盔版本
  4. 解压缩文件并将helm unix可执行二进制文件放入/ usr / local / bin目录

    转到您刚刚下载的目录

    cd /Users/your_name/Downloads
    

    解压缩文件

    gunzip -c helm-v2.8.2-darwin-amd64.tar.gz | tar xopf -
    

    复制到bin目录

    cp darwin-amd64/helm /usr/local/bin
    
  5. 现在您将看到想要的头盔的正确版本

    helm version
    

答案 5 :(得分:1)

这可能不是最高级的答案...但是我的团队运行的是已经安装了分er的kubernetes集群。设置一台新笔记本电脑时,我希望我的头盔与耕作机版本匹配,所以我发现它是这样的:

TILLER_POD=`kubectl get pods -n kube-system | grep tiller | awk '{print $1}'`
kubectl exec -n kube-system $TILLER_POD -- /tiller -version

然后,我只使用了该发行版号中的常规头盔安装说明(在Linux上,它基本上只是卷曲并解压缩到/ usr / local / bin)。

答案 6 :(得分:1)

如果您是Windows用户并通过choco安装了helm,请首先转到其文件夹(我的文件夹为C:\ ProgramData \ chocolatey),然后从bin文件夹中删除helm.exe。

然后,应下载相应的heml.exe文件。通过使用以上注释,确定从中下载exe的位置。例如,我使用了以下路径:https://get.helm.sh/helm-v2.14.3-windows-amd64.tar.gz

最后从tar中提取helm.exe并移入choco bin文件夹。当然,您可以直接将此exe添加到路径中。

答案 7 :(得分:0)

我遇到了同样的问题,但就我而言,我只想将Tiller升级到特定版本(因为helm客户端正在远程运行)。

所以,错误是:

Error: UPGRADE FAILED: incompatible versions client[v2.11.0] server[v2.9.1]

根据我运行的文档:

$ kubectl --namespace=kube-system set image deployments/tiller-deploy tiller=gcr.io/kubernetes-helm/tiller:v2.11.0

deployment.extensions/tiller-deploy image updated

文档参考:

https://helm.sh/docs/install/#upgrading-tiller

答案 8 :(得分:0)

对于那些使用snap安装头盔客户端的人,要将其降级/升级到特定版本,您可以简单地进行以下操作:

  • 卸载它:snap remove helm
  • 检查可用版本:snap info helm
  • 安装所需的目录:snap install helm --channel=X.X/stable --classic

答案 9 :(得分:-1)

使用Chocolatey使用以下命令安装所需的版本

choco install kubernetes-helm --version=2.13.1

有关可用版本的列表,请选中here