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

Helm: Incompatible versions between client and server

在我 运行 helm list 我得到以下错误:

Error: incompatible versions client[v2.9.0] server[v2.8.2]

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

有什么指点吗?

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

注意:如果您尝试降级服务器版本以匹配您的本地客户端版本,运行 改为:

helm init --upgrade --force-upgrade

和 OP 一样,我遇到了这个错误:

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

更新服务器对我来说不是一个选择,所以我需要 brew install 以前版本的客户端。我之前没有安装客户端 [v2.9.1](或任何以前的客户端版本),因此不能只是 brew switch kubernetes-helm 2.9.1。我最终不得不按照这个 SO 答案中的步骤操作:

这基本上是说

现在我有了正确的 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

希望这对某人有所帮助。

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

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

示例:列出已安装的 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

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

脚本可以让你像这样选择一个特定的版本 ./get_helm.sh -v v2.13.1

这个答案是为那些想要选择(降级)helm 客户端版本的人准备的,brew install 不是 work.You 只能手动安装来自 here.

的二进制文件

示例:

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

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

  3. 中选择并下载你想要的helm版本
  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

    helm version
    

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

所以,错误是:

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

对于那些已经安装了 snap 的 helm 客户端的人来说,要downgrade/upgrade它到一个特定的版本,你可以简单地:

  • 卸载它:snap remove helm
  • 检查可用版本:snap info helm
  • 安装你想要的:snap install helm --channel=X.X/stable --classic

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

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

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

如果你是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添加到路径中