4

即使在向用户授予集群角色之后,我也得到了Error from server (Forbidden): User "system:anonymous" cannot list nodes at the cluster scope. (get nodes)

我为用户设置了以下内容:

- context:
    cluster: kubernetes
    user: user@gmail.com
  name: user@kubernetes`  set in the ~/.kube/config file

并将以下内容添加到 admin.yaml 以创建集群角色和集群角色绑定:

kind: CluserRouster: kubernetes    user: nsp@gmail.com  name: nsp@kubernetese
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
  name: admin-role
rules:
  - apiGroups: ["*"]
    resources: ["*"]
    verbs: ["*"]
---
oidckind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
  name: admin-binding
subjects:
  - kind: User
    name: nsp@gmail.com
roleRef:
  kind: ClusterRole
  name: admin-role

当我尝试该命令时,我仍然收到错误。

kubectl --username=user@gmail.com get nodes
Error from server (Forbidden): User "system:anonymous" cannot list nodes at the cluster scope. (get nodes)

有人可以建议如何进行。

4

2 回答 2

4

您的问题不在于您的 ClusterRoleBindings,而在于用户身份验证。Kubernetes 告诉您,它将您识别为system:anonymous(类似于 *NIX 的 nobody)而不是 nsp@example.com(您对其应用了绑定)。

在您的特定情况下,原因是该username标志使用 HTTP Basic 身份验证并且需要该password标志才能实际执行任何操作。但即使您确实提供了密码,您仍然需要实际告诉 API 服务器接受该特定用户。

查看处理不同身份验证方法的 Kubernetes 文档的这一部分。要使username身份password验证正常工作,您需要查看静态密码文件部分,但我实际上建议您使用 X509 客户端证书,因为它们更安全且操作更简单(服务器上没有秘密,没有状态在 API 服务器之间复制)。

于 2017-08-11T02:18:10.603 回答
1

就我而言,由于 RBAC,我收到了几乎类似的错误

错误

root@k8master:~# kubectl cluster-info dump --insecure-skip-tls-verify=true
Error from server (Forbidden): nodes is forbidden: User "system:anonymous" cannot list resource "nodes" in API group "" at the cluster scope

解决方案: 作为解决方案,我做了以下事情来重新配置我的用户以访问集群

cd $HOME
sudo whoami
sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf
echo "export KUBECONFIG=$HOME/admin.conf" | tee -a ~/.bashrc

完成上述操作后,当我进行集群转储时,我得到了结果

root@k8master:~# kubectl cluster-info
Kubernetes master is running at https://192.168.10.15:6443
KubeDNS is running at https://192.168.10.15:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
于 2019-03-06T08:03:21.120 回答