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

标签 kubernetes kubectl

我正在运行启用了 RBAC 的 Kubernetes 1.6.2。我创建了一个用户 kube-admin具有以下集群角色绑定(bind)

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引用,我错过了哪个角色?

最佳答案

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

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

您的 kubelet 配置为对请求进行身份验证/授权,而 apiserver 未提供 kubelet 识别的身份验证信息。

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

https://kubernetes.io/docs/admin/kubelet-authentication-authorization/#overview了解更多信息。

关于Kubernetes RBAC 无法升级连接 : Forbidden (user=system:anonymous, verb=create, resource=nodes, subresource=proxy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44312745/

相关文章:

amazon-web-services - AWS EKS Kubernetes Pod 需要花费大量时间才能准备就绪

go - 通过 API 或 SDK 应用配置 yaml 文件

bash - 只要模式匹配就读取流

kubernetes - 与 kubectl 一起使用时,mobaxterm 无法读取 kube 配置设置?

elasticsearch - 使用 ServiceAccount 到 IAM 角色映射在 Kubernetes 中运行 Elasticsearch 时出现 S3 连接问题

kubernetes - minikube ip 无法访问

zsh - 为什么zsh不能执行命令compdef?

kubernetes - 同一部署中的Pod中可以有不同的主机安装吗?

kubernetes - 使用 kubernetes 可以在不重启 pod 的情况下修改容器的环境变量吗

kubernetes - Traefik UI - Kubernetes - 连接被拒绝