简介

紧接上一篇博客,在上篇博客安装了k8s,安装完后我们只能通过命令行去执行操作,这样不方便非战斗人员去使用。介于此因,我们可以安装相应版本的dashboard,这样我们就可以通过图形界面的方式去使用k8s了。

1. 通过yaml文件安装dashboard

我们可以从https://github.com/kubernetes/dashboard/releases上边找到和自己安装的k8s相对于的dashboard的版本,这里我安装的是1.8.3的版本。

1.1 下载对应版本

[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/

1.2 修改yaml文件中镜像地址

因为大家都知道的原因,yaml文件中的镜像地址无法被访问,因此无法拉下来我们需要的镜像,所以需要我们将镜像地址修改成可以访问到的(自行百度吧)。
在这里插入图片描述

1.3 修改yaml文件中service的type类型

官方的kubernetes-dashboard.yaml文件中service的type类型为clusterIp(service默认类型),这种方式要访问dashboard需要通过代理,所以我们改为NodePort方式,这样部署完后,就可以直接通过nodeIP:port的方式访问
在这里插入图片描述

1.4 部署

[root@k8s-master ~]# kubectl create -f kubernetes-dashboard.yaml

部署完成后,可以通过kubectl get svc,pod -n kube-system来查看是否部署成功
在这里插入图片描述
当部署成功后,我们就可以访问dashboar的图形界面了(使用任何一个节点的宿主机ip:port访问)
在这里插入图片描述

2 为dashboar配置访问权限

k8s 从1.6版本开始使用RBAC(有关基于角色的访问控制,请参考k8s文档), 所以我们需要给dashboard配置一个serviceAccount, 并给该serviceAccount附上权限(也就是和role进行绑定,因为我们是集群,所以执行的是clusterRoleBinding)

2.1 创建serviceAccount

我们创建一个叫dashboard-admin的serviceAccount用户

apiVersion: v1
kind: ServiceAccount
metadata:
  name: dashboard-admin
  namespace: kube-system

2.2 授权

进行权限绑定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

2.3 获取用户token

[root@k8s-master ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep dasboard-admin | awk '{print $1}')

在这里插入图片描述

2.4登陆dashboard

在这里插入图片描述
在这里插入图片描述
到此,k8s的dashboard就安装完了,我们就可以愉快的通过图形界面进行操作了。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐