今天我遇到一个奇怪的问题,关于我的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
看起来没什么用处
答案 0 :(得分:5)
事实证明令牌无效(不确定是否因为12小时到期)。如果您只是F5浏览器页面,您没有重新进行身份验证,但仍然可以访问控制台页面,但实际上应该通过重新登录ICP门户来更新令牌。
通过重新访问ICP门户网站解决了这个问题:
https://<master host>:8443/console/
这将重新允许您进行身份验证。之后,转到管理员 - &gt;配置客户端,粘贴最新的命令,你会发现令牌可能会更新。执行新命令解决了这个问题。
2问题仍然存在:
a)如果页面长时间打开且令牌过期,ICP门户页面可能不会自动刷新以强制您重新登录,这意味着set-credentials命令中的令牌仍然是旧的。
b)即使设置旧令牌也会被接受,命令永远不会抱怨错误甚至警告。当在服务器上更改令牌时,这可能会误导我们,例如,如果我将命令保存到本地txt文件并再次重新执行(即使在令牌过期后),命令仍然成功完成,但实际上我仍然没有得到我尝试登录时验证正确。