简介
本文介绍K8S的dashboard如何使用token登录。
Dashboard 支持 Kubeconfig 和 Token 两种认证方式,这里测试 Token 认证方式登录。
本文相关的文件
本文实际只用到了dashboard-user.yaml。
- recommended.yaml和recommended.yaml.bak是其他文章用到的文件,只是恰好在此路径。
- .yaml是要用到的文件,.yaml.bak是原始配置文件(仅用于备份)。
文件下载地址
此内容 登录 后可见!
1.创建权限配置文件
创建一个配置文件:dashboard-user.yaml,内容如下:
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- 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
说明
配置一个叫 admin-user 的服务账号,并放在 kubernetes-dashboard 命名空间下,并将 cluster-admin 角色绑定到 admin-user 账户,这样 admin-user 账户就有了管理员的权限。
默认情况下,kubeadm 创建集群时已经创建了 cluster-admin 角色,我们直接绑定即可。
2.创建用户
创建用户
命令
kubectl apply -f dashboard-user.yaml
结果
查看用户
命令
kubectl get serviceaccount -n kubernetes-dashboard
结果
备注:删除用户的方法
kubectl delete -f dashboard-user.yaml
或者
kubectl delete serviceaccount admin-user -n kubernetes-dashboard kubectl delete clusterrolebinding admin-user
3.获取token
命令
kubectl -n kubernetes-dashboard create token admin-user
结果(生成了token)
注意:有人说可以通过下边的命令查看token,但我执行是查不到的,可能是版本问题。
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
结果:(下边红色箭头处并没有展示出Token)
4.登录页面
页面展示
访问一下dashboard页面(注意:必须用https访问):https://ip:30001,然后在token处输入上边生成的token:
登录成功:
切换命名空间
上边是默认的空间,可以查看想看的命名空间的数据:
5.设置 token 过期时间
假如我想生成过期时间为24小时的token,可以这样做:
kubectl -n kubernetes-dashboard create token admin-user --duration=86400s
请先
!