Kubernetes创建Dashbaord用户

半兽人 发表于: 2022-09-03   最后更新时间: 2024-08-30 14:19:49  
{{totalSubscript}} 订阅, 2,658 游览

使用Kubernetes的Service Account创建一个新用户,授予该用户admin权限,并使用与该用户绑定的Token来登录Dashboard。

重要提示:在继续之前,请确保你知道自己在做什么。给Dashboard的服务账户授予admin权限可能会有安全风险。

创建一个Service Account

首先在命名空间 kubernetes-dashboard 中创建名称为 admin-user 的 Service Account。

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

创建一个ClusterRoleBinding

在大多数情况下,使用 kops、kubeadm 或任何其他流行工具部署集群后,集群中已经存在 ClusterRole cluster-admin。 我们可以使用它并仅为我们的 ServiceAccount 创建一个 ClusterRoleBinding。 如果它不存在,那么需要先创建此角色并手动授予所需的权限。

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard

执行

你需要创建以上2个文件ServiceAccountClusterRoleBinding,你可以把它们复制到新的清单文件中,命名为dashboard-adminuser.yaml,并使用kubectl apply -f dashboard-adminuser.yaml来创建它们。

kuebiz上已经做好了,可以直接来创建:

kubectl apply -f https://www.kubebiz.com/raw/KubeBiz/Kubernetes%20Dashboard/v2.7.0/admin-user.yaml

最后,获得令牌

现在我们需要找到我们可以用来登录的token,执行以下命令:

kubectl -n kubernetes-dashboard create token admin-user

输入类似如下:

eyJhbGciOiJSUzI1NiIsImtpZCI6Im5oT0VFUzVpdzROTkhGVUVZb0ZfUnpBYW5YWXRRWU9ydXFJaHFkMlkxRjAifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzU2NTM0Nzc0LCJpYXQiOjE3MjQ5OTg3NzQsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiYWE4YzE3MjMtZjQ1ZS00MTcyLThmMzEtZjRjNTM2NDY3NjE0In19LCJuYmYiOjE3MjQ5OTg3NzQsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.HvTOarjXqE40L9HxXvq9ReOLSEiTHPMgZCunUNS5-oGw5eV3PzpvAew_x7fs61za5UABMnR1B54-gAng19DoTD4jnZrMMbVfzf6EsBbqI0X2LbmAiQ4ebNsO1wS0OvaiMotBe8TpqrDe5VeOx4iXm_Eu2z3Ao5lLtxda3fRkCO8HuBsAseH2Thz67Uy3dF5jUERunncD6MrTrGs48JqTTp5upxHMJRPFOiP440_yzls12kvv9LETEimdYU6Ci7htTXZazr7PdDXAiK-THK6rmeHj4wCf5Hkjjz8-QZW9Z-1oA87PPXKkoAIXzQkZkxAQ4D5aQVNeJ2uIz9Q89cbABw

现在,就可以通过Token登录了。

signin

清理

移除 admin 的 ServiceAccountClusterRoleBinding

kubectl -n kubernetes-dashboard delete serviceaccount admin-user
kubectl -n kubernetes-dashboard delete clusterrolebinding admin-user
更新于 2024-08-30

想个好名字 1年前

可以创建不会过期的token吗

可以用kubeconfig的方式登录。

無名 -> 想个好名字 2月前

设置一年过期吧,够用了。

kubectl -n kubernetes-dashboard create token admin-user --duration=8760h
查看kubernetes更多相关的文章或提一个关于kubernetes的问题,也可以与我们一起分享文章