官方链接:
https://github.com/kubernetes/dashboard
Dashboard 的后端使用了 K8S 的 client-go ,前端主要使用了 Angular
安装方法:
1 | kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml |
查看是否安装成功:
1 | kubectl -n kube-system get all -l k8s-app=kubernetes-dashboard |
以当前的部署方式,Service 使用了 ClusterIP 的类型,所以在集群外不能直接访问。我们先使用 kubectl 提供的 port-forward 功能进行访问:
1 | kubectl -n kube-system port-forward pod/kubernetes-dashboard-67896bc598-dhdpz 8443 |
查看 token
使用令牌登录
1 | kubectl -n kube-system get serviceaccount -l k8s-app=kubernetes-dashboard -o yaml |
查看 serviceaccount
可以看到其中有配置 secrets, 查看该 secret 详情获得 Token:
1 | kubectl -n kube-system describe secrets kubernetes-dashboard-token-6ck2l |
权限报错:
1 | configmaps is forbidden: User "system:serviceaccount:kube-system:kubernetes-dashboard" cannot list resource "configmaps" in API group "" in the namespace "default" 。 |
授权:
创建 ServiceAccount:
1 | apiVersion: v1 |
创建 RoleBinding: 这里为了方便直接绑定了 cluster-admin 的 ClusterRole:
1 | apiVersion: rbac.authorization.k8s.io/v1 |
使用以上配置创建用户和绑定,然后还是同样的办法获取 Token