今天遇到一个奇怪的问题,我的Windows kubectl客户端在连接ICp时突然出现授权问题。
我正在使用带有 Widows 配置的 kubectl.exe 的 ICP。然后,过了一会儿,由于笔记本电脑自动休眠,我的VPN连接断开了,因此失去了与远程ICP的连接。后来我回来重新连接ICP。我再次使用 kubectl 命令并面临:
错误:您必须登录到服务器(未经授权)
在 ICP 主节点上,如果我使用没有错:
kubectl -s 127.0.0.1:8888 -n kube-system 获取 pods -o 宽
我回去重新配置客户端(粘贴从管理复制的代码 - >配置 kubectl),命令执行成功,但当我发出
kubectl 获取 pod
还是错误。
我检查了文章:
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)
看起来没有多大帮助
最佳答案
结果证明 token 无效(不确定是否因为 12 小时到期)。如果直接F5浏览器页面没有重新认证但仍然可以访问控制台页面,但实际上应该通过重新登录ICP Portal来更新 token 。
该问题已通过重新访问 ICP 门户解决:
https://<master host>:8443/console/
这将重新允许您进行身份验证。之后,转到 admin -> configure client,粘贴最新的命令,您会发现 token 可能已更新。执行新命令解决了这个问题。
2 问题仍然存在:
a) 如果页面长时间打开且 token 已过期,ICP 门户页面可能不会自动刷新以强制您重新登录,这意味着 set-credentials 命令中的 token 仍然是旧的。
b) 即使设置旧 token 也被接受,并且命令从不提示错误甚至警告。这可能会在服务器上更改 token 时误导我们,例如,如果我将命令保存到本地 txt 文件并再次重新执行(即使 token 过期后),命令仍然成功完成,但实际上我仍然没有得到当我尝试登录时已正确验证。
关于kubernetes - kubectl 错误 : You must be logged in to the server (Unauthorized),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48605005/