gpt4 book ai didi

kubernetes:来自服务器的错误(禁止):即使在授予权限后,用户 "system:anonymous"也无法列出集群范围内的节点

转载 作者:行者123 更新时间:2023-12-02 11:32:01 25 4
gpt4 key购买 nike

即使在向用户授予集群角色之后,我也会得到 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 以创建集群角色和集群角色绑定(bind):
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)

有人可以建议如何进行。

最佳答案

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

在您的具体情况下,原因是 username标志使用 HTTP Basic 身份验证,需要 password标记实际做任何事情。但即使您确实提供了密码,您仍然需要实际告诉 API 服务器接受该特定用户。

看看this处理不同身份验证方法的 Kubernetes 文档的一部分。对于usernamepassword身份验证工作,您想查看静态密码文件部分,但我实际上建议您使用 X509 客户端证书,因为它们更安全且操作更简单(服务器上没有 secret ,没有状态可复制API 服务器)。

关于kubernetes:来自服务器的错误(禁止):即使在授予权限后,用户 "system:anonymous"也无法列出集群范围内的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45608533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com