如何使用Basic Auth创建具有在kubernetes v1.13中列出命名空间的适当权限的用户

问题描述 投票:1回答:2

我正在开发一个插件,它使用kubernetes java客户端在kubernetes中进行操作。我正在使用kubernetes客户端v4.1.2和kubernetes v1.13。在我的插件中,我给用户选项使用Basic Auth或Api令牌登录kubernetes集群。通过API令牌,我可以使用基本身份验证登录但无法登录。我尝试使用用户名和密码创建用户但是当我尝试使用这些凭据登录时,我收到错误消息,其中显示“名称空间被禁止:用户”系统:匿名“无法列出资源”名称空间“在API组中”“范围”。

任何人都可以帮我创建一个具有相应权限的用户(Basic Auth)来列出kubernetes中的命名空间吗?

提前致谢

java kubernetes
2个回答
0
投票

您应绑定服务帐户系统: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

0
投票

请尝试创建:命名空间,凭据,角色,将角色绑定到用户。 你可以找到here的社区服装。 您可以找到其他有用的信息here。 请与您的结果分享。

© www.soinside.com 2019 - 2024. All rights reserved.