Kubernetes权限问题

时间:2019-04-20 13:53:36

标签: kubernetes kubectl rbac

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

我遵循了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 “/” 

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

2 个答案:

答案 0 :(得分:1)

您可能无权列出集群中的节点。

从kube config中检查与user2关联的角色和角色绑定。

创建集群角色并添加适当的clusterrolebinding映射user2和集群角色,以便能够列出或创建或更新kubernetes对象

答案 1 :(得分:0)

已经说明过了。但是我感觉这需要进行解释并提供一些其他有关发生的情况的信息。

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

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

在您的情况下,您肯定没有特权执行此操作,因为您的错误直接指出了这一点(这与创建clusterroles有关):

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,但他没有为您提供必要的(集群)角色,创建这些规则的原因也是相同的。如果要创建角色,列出节点,编辑对象,则需要向集群管理员请求(集群)角色。这是一个快速guide的操作方法,因为您无法自己完成操作,因此可以与管理员共享,以防万一由于缺乏知识而导致错误。其他有用的链接:

Create User With Limited Namespace Access

RoleBinding and ClusterRoleBinding