304464743

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

  •  
  •   304464743 · Feb 10, 2019 · 11475 views
    This topic created in 2650 days ago, the information mentioned may be changed or developed.
    我按照 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 无关)
    Supplement 1  ·  Feb 11, 2019
    已找到解决方法,但其中原理不太理解,希望有人能帮忙解释下?

    解决方法:
    我按照如下文档,在 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/
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1094 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 18:25 · PVG 02:25 · LAX 11:25 · JFK 14:25
    ♥ Do have faith in what you're doing.