问题描述
我正在使用kubernetes java客户端在kubernetes中进行操作的插件上工作。 我正在使用kubernetes客户端v4.1.2和kubernetes v1.13。 在我的插件中,我为用户提供了使用基本身份验证或Api令牌登录kubernetes集群的选项。 通过API令牌,我可以登录,但无法使用基本身份验证进行登录。 我尝试使用用户名和密码创建用户,但是当我尝试使用这些凭据登录时,出现错误消息,提示“禁止命名空间:用户“ system:anonymous”无法在群集的API组“”中列出资源“命名空间”范围”。
有人可以帮助我创建具有适当权限的用户(基本身份验证)来列出kubernetes中的名称空间吗?
提前致谢
1楼
您应该使用角色cluster-admin绑定服务帐户system:serviceaccount:default:default(这是绑定到Pod的默认帐户),只需创建一个Yaml(名称为fabric8-rbac.yaml),其内容如下:
我通过创建来解决
# NOTE: The service account `default:default` already exists in k8s cluster.
# You can create a new account following like this:
#---
#apiVersion: v1
#kind: ServiceAccount
#metadata:
# name: <new-account-name>
# namespace: <namespace>
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: fabric8-rbac
subjects:
- kind: ServiceAccount
# Reference to upper's `metadata.name`
name: default
# Reference to upper's `metadata.namespace`
namespace: default
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
kubectl apply -f fabric8-rbac.yaml
2楼
请尝试创建: 名称空间,凭据,角色,并将角色绑定到用户 。
您可以在找到社区answear。
您可以在找到其他有用的信息。
请分享您的结果。