可执行 kubelogin 失败,退出代码为 1

tjd*_*bts 3 azure kubernetes azure-devops azure-aks

我正在使用 API 版本 (1.25.2) 的 Kubernetes 服务器。当我尝试执行 kubectl 命令时出现以下错误

TRONBQQ2:~$ kubectl get nodes
error: unknown flag: --environment
error: unknown flag: --environment
error: unknown flag: --environment
error: unknown flag: --environment
error: unknown flag: --environment
Unable to connect to the server: getting credentials: exec: executable kubelogin failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

从同一终端,我可以访问版本 1.23.12 的 Kubernetes 服务器。

这是由于旧的 kubectl client 版本吗?

TRONBQQ2:~$ kubectl version --client
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.4", GitCommit:"d360454c9bcd1634cf4cc52d1867af5491dc9c5f", GitTreeState:"clean", 
BuildDate:"2020-11-11T13:17:17Z", GoVersion:"go1.15.2", Compiler:"gc", Platform:"linux/amd64"}
TRONBQQ2:~$ sudo apt-get install -y kubectl
Reading package lists... Done
Building dependency tree
Reading state information... Done
Run Code Online (Sandbox Code Playgroud)

kubectl 已经是最新版本(1.19.4-00)。0 已升级,0 已新安装,0 已删除,313 未升级。

我什至尝试升级kubectl。即使升级后,版本仍为 v1.19.4。不确定这是上述错误的原因

tjd*_*bts 10

尝试检查以下命令是否打印以下选项。

>>>kubelogin -h

Login to azure active directory and populate kubeconfig with AAD tokens

Usage:
  kubelogin [flags]
  kubelogin [command]

Available Commands:
    completion         Generate the autocompletion script for the specified shell
   convert-kubeconfig convert kubeconfig to use exec auth module
   get-token          get AAD token
  help               Help about any command
  remove-tokens      Remove all cached tokens from filesystem

 Flags:
     -h, --help          help for kubelogin
     --logtostderr   log to standard error instead of files (default true)
 -v, --v Level       number for the log level verbosity
  --version       version for kubelogin
Run Code Online (Sandbox Code Playgroud)

看来我有一个不同的 kubelogin 并且错过了上面指定的命令选项。所以我使用安装了新版本的 kubelogin

 az aks install-cli
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,那么您可以参考“在此输入图像描述" 获取 kubelogin 酿造包

同时导出以下路径

export PATH="/usr/local/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

一旦 kubelogin 可用,请运行以下命令来转换您的 KUBECONFIG

kubelogin convert-kubeconfig --kubeconfig ./kube/config
Run Code Online (Sandbox Code Playgroud)