kubectl错误:您必须登录到服务器(未经授权)

时间:2018-02-04 05:22:14

标签: kubernetes kubectl ibm-cloud-private

今天我遇到一个奇怪的问题,关于我的Windows kubectl客户端在连接ICp时突然提出授权问题。

我正在使用带有Widows配置的kubectl.exe的ICP。然后,一段时间后,由于笔记本电脑自动睡眠,我的VPN连接断开,因此失去了与远程ICP的连接。后来我回来重新连接了ICP。我再次使用kubectl命令并面对:

错误:您必须登录服务器(未授权)

在ICP主节点上,如果我使用的话没有错:

kubectl -s 127.0.0.1:8888 -n kube-system get pods -o wide

我回去重新配置客户端(粘贴了从admin复制的代码 - >配置kubectl),命令执行成功但是当我发出

kubectl get pods

仍然是错误。

我查了一下文章:

kubectl - error: You must be logged in to the server

kubectl error: "You must be logged in to the server (the server has asked for the client to provide credentials)"

error: You must be logged in to the server (the server has asked for the client to provide credentials)

看起来没什么用处

1 个答案:

答案 0 :(得分:5)

事实证明令牌无效(不确定是否因为12小时到期)。如果您只是F5浏览器页面,您没有重新进行身份验证,但仍然可以访问控制台页面,但实际上应该通过重新登录ICP门户来更新令牌。

通过重新访问ICP门户网站解决了这个问题:

https://<master host>:8443/console/

这将重新允许您进行身份验证。之后,转到管理员 - &gt;配置客户端,粘贴最新的命令,你会发现令牌可能会更新。执行新命令解决了这个问题。

2问题仍然存在:

a)如果页面长时间打开且令牌过期,ICP门户页面可能不会自动刷新以强制您重新登录,这意味着set-credentials命令中的令牌仍然是旧的。

b)即使设置旧令牌也会被接受,命令永远不会抱怨错误甚至警告。当在服务器上更改令牌时,这可能会误导我们,例如,如果我将命令保存到本地txt文件并再次重新执行(即使在令牌过期后),命令仍然成功完成,但实际上我仍然没有得到我尝试登录时验证正确。