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

Avi*_*Avi 52 kubernetes kubernetes-helm

我跑完后helm list遇到以下错误:

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

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

有什么指针吗?

aha*_*rat 64

像OP一样,我有这个错误:

$ helm list
Error: incompatible versions client[v2.10.0] server[v2.9.1]
Run Code Online (Sandbox Code Playgroud)

更新服务器对我来说不是一个选项,所以我需要brew安装以前版本的客户端.我以前没有安装客户端[v2.9.1](或任何以前的客户端版本),因此不能只是brew switch kubernetes-helm 2.9.1.我最终不得不按照这个SO答案中的步骤进行操作: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
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人.

  • 这是一个更好的答案,因为它不会更改服务器版本,但会相应地更改您的本地版本 (3认同)

Ign*_*lán 49

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

  • 如何降级客户掌舵版本? (11认同)
  • 人们只是在使用客户端时自动更新服务器版本?似乎非常不负责任 (11认同)
  • 确实不应将此视为正确答案。下面有两个好的解决方案。 (5认同)
  • 仅仅为了满足客户端软件而升级生产软件是不明智的。 (3认同)

Zua*_*abi 11

如果不能更改服务器版本,则另一种选择是使用 helm安装程序脚本

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

  • 很好的简单解决方案,可以工作并且不需要更改服务器版本。这应该是公认的答案。 (2认同)

Sco*_*ing 8

通过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
Run Code Online (Sandbox Code Playgroud)

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

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"
Run Code Online (Sandbox Code Playgroud)

然后命令是

helm_2_9_1 list
Run Code Online (Sandbox Code Playgroud)


J.C*_*J.C 7

此答案适用于想要选择(降级) helm 客户端版本且 brew install 不起作用的人。您可以从此处手动安装二进制文件。

例子:

  1. 你可以解除当前头盔的链接

    brew unlink kubernetes-helm
    
    Run Code Online (Sandbox Code Playgroud)
  2. github helm中选择并下载你想要的helm版本------ v2.8.2

  3. 解压文件并将 helm unix 可执行二进制文件放入 /usr/local/bin 目录

    进入刚刚下载的目录

    cd /Users/your_name/Downloads
    
    Run Code Online (Sandbox Code Playgroud)

    解压文件

    gunzip -c helm-v2.8.2-darwin-amd64.tar.gz | tar xopf -
    
    Run Code Online (Sandbox Code Playgroud)

    复制到bin目录

    cp darwin-amd64/helm /usr/local/bin
    
    Run Code Online (Sandbox Code Playgroud)
  4. 现在你会看到你想要的正确版本的头盔

    helm version
    
    Run Code Online (Sandbox Code Playgroud)