我正在开发一个插件,它使用kubernetes java客户端在kubernetes中进行操作。我正在使用kubernetes客户端v4.1.2和kubernetes v1.13。在我的插件中,我给用户选项使用Basic Auth或Api令牌登录kubernetes集群。通过API令牌,我可以使用基本身份验证登录但无法登录。我尝试使用用户名和密码创建用户但是当我尝试使用这些凭据登录时,我收到错误消息,其中显示“名称空间被禁止:用户”系统:匿名“无法列出资源”名称空间“在API组中”“范围”。
任何人都可以帮我创建一个具有相应权限的用户(Basic Auth)来列出kubernetes中的命名空间吗?
提前致谢
您应绑定服务帐户系统:serviceaccount:default:default(绑定到Pod的默认帐户),使用角色cluster-admin,只需创建一个名为fabric8-rbac.yaml的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