https://blog.csdn.net/qq_22917163/article/details/84527420
我们可以从https://github.com/kubernetes/dashboard/releases上边找到和自己安装的k8s相对于的dashboard的版本,这里我安装的是1.8.3的版本。
[root@k8s-master ~]# wget https://github.com/kubernetes/dashboard/archive/v1.8.3.tar.gz
[root@k8s-master ~]# tar xf dashboard-1.8.3.tar
[root@k8s-master ~]# cd dashboard-1.8.2/src/deploy/recommended/
因为大家都知道的原因,yaml文件中的镜像地址无法被访问,因此无法拉下来我们需要的镜像,所以需要我们将镜像地址修改成可以访问到的(自行百度吧)。
官方的kubernetes-dashboard.yaml文件中service的type类型为clusterIp(service默认类型),这种方式要访问dashboard需要通过代理,所以我们改为NodePort方式,这样部署完后,就可以直接通过nodeIP:port的方式访问
[root@k8s-master ~]# kubectl create -f kubernetes-dashboard.yaml
部署完成后,可以通过kubectl get svc,pod -n kube-system来查看是否部署成功
当部署成功后,我们就可以访问dashboar的图形界面了(使用任何一个节点的宿主机ip:port访问)
k8s 从1.6版本开始使用RBAC(有关基于角色的访问控制,请参考k8s文档), 所以我们需要给dashboard配置一个serviceAccount, 并给该serviceAccount附上权限(也就是和role进行绑定,因为我们是集群,所以执行的是clusterRoleBinding)
我们创建一个叫dashboard-admin的serviceAccount用户
apiVersion: v1 kind: ServiceAccount metadata: name: dashboard-admin namespace: kube-system
进行权限绑定ClusterRoleBinding ,也就是授予权限, 我们把k8s内置的cluster-admin这个role(角色)赋给了dashboard-admin这个serviceAccount用户
apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: dashboard-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: dashboard-admin namespace: kube-system
[root@k8s-master ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep dasboard-admin | awk ‘{print $1}‘)
到此,k8s的dashboard就安装完了,我们就可以愉快的通过图形界面进行操作了。
原文:https://www.cnblogs.com/linuxws/p/10657786.html