V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
304464743
V2EX  ›  Kubernetes

关于 kubernetes exec 提示匿名用户无权限的问题

  •  
  •   304464743 · 2019-02-10 20:16:33 +08:00 · 10796 次点击
    这是一个创建于 2148 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我按照 http://blog.51cto.com/10880347/2326146 安装了 1.13 的版本。
    执行 kubectl get cs,node 都显示成功了。并且也可能 kubectl run 运行镜像
    但是执行 kubectl exec 的时候出现了 error: unable to upgrade connection: Forbidden (user=system:anonymous, verb=create, resource=nodes, subresource=proxy)

    我尝试把生成出来的 kubelet.kubeconfig 复制到~/.kube/config。执行 kubectl get pods 等命令的时候,提示使用的是 system:node:172.10.x.x,用户没权限,然后我给 system:node:172.10.x.x 赋了 cluster-admin 权限,执行命令都有权限了,但是 kubelet exec 的时候还是提示上面那个错误。

    求解决方法?(推测 exec 所调用的用户权限和 clusterrole 无关)
    第 1 条附言  ·  2019-02-11 09:52:50 +08:00
    已找到解决方法,但其中原理不太理解,希望有人能帮忙解释下?

    解决方法:
    我按照如下文档,在 api 启动参数添加--kubelet-client-certificate 和 --kubelet-client-key
    kubelet 启动参数添加 --client-ca-file
    然后运行 exec 就提示 kubernetes 用户无权限(原来提示匿名用户,现在提示 kubernetes 用户,我参数指定是 kube-api 用的 ca 证书,推测这个用户是证书里写的吧?),然后再给 kubernetes 用户赋了 cluster-admin 权限就可以了

    文档:https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-authentication-authorization/
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   987 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:01 · PVG 04:01 · LAX 12:01 · JFK 15:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.