kubectl 无效的 api 版本

kubectl invalid apiVersion

这可能是一个明显的错误,但我花了一段时间才弄清楚(因为我是 kubernetes 的新手),所以我将其发布在这里以方便其他人的生活。

收到以下错误:

D:\>kubectl get pods
error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1beta1"

kubectl 版本是:

D:\>kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", 
GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11- 
26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"windows/amd64"}
error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1beta1"

我的 kube 配置文件包含:

exec:
  apiVersion: client.authentication.k8s.io/v1beta1

我尝试将 apiVersion 更改为 v1alpha1、v1 等。 None 其中帮助解决了不同的错误。

问题出在 kubectl 版本上,特别是系统上安装的 docker 桌面。当我最终明确下载 1.16 版但 kubectl 仍报告 1.10 时,很容易发现问题。我将指向我的 kubectl.exe 的 PATH 变量移到了 PATH 的前面(顶部),尝试了一个新的 CMD window 并且 kubectl 工作正常。

顺便说一句,docker 桌面安装中的 kubectl 问题已在 kubectl download site 上注明,我只是从未注意到它。