Kubernetes RBAC无法升级连接:Forbidden(user = system:anonymous,verb = create,resource = nodes,subresource = proxy)

Cur*_*len 4 kubernetes kubectl

我在运行RBAC的情况下运行Kubernetes 1.6.2.我创建了一个kube-admin具有以下群集角色绑定的用户

kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: k8s-admin subjects: - kind: User name: kube-admin apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io

当我尝试kubectl exec进入正在运行的pod时,我收到以下错误.

kubectl -n kube-system exec -it kubernetes-dashboard-2396447444-1t9jk -- /bin/bash error: unable to upgrade connection: Forbidden (user=system:anonymous, verb=create, resource=nodes, subresource=proxy)

我的猜测是我错过了一个ClusterRoleBinding参考,我错过了哪个角色?

Jor*_*itt 8

kubectl和api之间的连接很好,并且正在被正确授权.

为了满足exec请求,apiserver联系运行pod的kubelet,并且该连接是被禁止的.

您的kubelet配置为对请求进行身份验证/授权,并且apiserver不提供kubelet识别的身份验证信息.

apiserver对kubelet进行身份验证的方式是使用客户端证书和密钥,使用--kubelet-client-certificate=... --kubelet-client-key=...提供给API服务器的标志进行配置.

有关更多信息,请参阅https://kubernetes.io/docs/admin/kubelet-authentication-authorization/#overview.