首页 > 解决方案 > Kubernetes 权限问题

问题描述

我有一个用于访问 Kubernetes 集群的 KUBE_CONFIG 文件。我只能列出 pod。我无法列出节点或任何其他资源。

我已关注Forbidden: user cannot get path "/" (not anonymous user),但未成功。

我尝试创建角色,但出现以下错误:

Error from server (Forbidden): clusterroles.rbac.authorization.k8s.io is forbidden: User "user2" cannot create resource "clusterroles" in API group "rbac.authorization.k8s.io" at the cluster scope

其他一些错误是:

当我,kubectl get nodes

Error from server (Forbidden): nodes is forbidden: User "user2" cannot list resource "nodes" in API group "" at the cluster scope

当我在浏览器上访问 Kubernetes 仪表板时,我得到:

Forbidden: user cannot get path “/” 

我的期望是能够创建集群角色,以便我可以访问资源。

标签: kuberneteskubectlrbac

解决方案


已经说过了。但我觉得这需要解释和一些关于正在发生的事情的额外信息。

通常 kube-config 文件位于主目录中的一个隐藏文件夹中,~/.kube您也可以使用以下命令从任何目录调用它:

kubectl --kubeconfig="kubeconfigname.yaml" get pods

在您的情况下,您当然没有权限这样做,因为您的错误直接表明(这是关于创建集群角色):

Error from server (Forbidden): clusterroles.rbac.authorization.k8s.io is forbidden: User "user2" cannot create resource "clusterroles" in API group "rbac.authorization.k8s.io" at the cluster scope

User "user2" cannot create resource所以集群管理员创建了一个 user2 但他没有为您提供必要的(集群)角色,同样的原因是创建这些规则的原因。如果要创建角色、列出节点、编辑对象,您需要向集群管理员请求(集群)角色。这是有关如何执行此操作的快速指南,因为您将无法自己执行此操作,如果错误是由于缺乏知识而导致的,您可以与管理员分享。其他有用的链接:

创建具有有限命名空间访问权限的用户

RoleBinding 和 ClusterRoleBinding


推荐阅读