环境准备

搭建好k8s集群
本文只做参考示例, 实际安装方式可以参照 K8S(三)Helm3 安装使用

选择合适的dashboard版本

DashBoard 项目地址: https://github.com/kubernetes/dashboard

Kubernetes仪表板是用于Kubernetes集群的基于web的通用UI。它允许用户管理集群中运行的应用程序并对它们进行故障排除,还可以管理集群本身。

k8s集群的版本是1.18.6, 在dashboard的release页面匹配后,选择 2.0.3版本。

安装

官方文档提供的安装方式为:

1
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml

但是 raw.githubusercontent.com 我们在国内是访问不到的,所以这里我们需要做一些设置。

1. 查询 raw.githubusercontent.com 真实IP

打开 https://githubusercontent.com.ipaddress.com/, 可查得当前真实ip地址为: 199.232.96.133

2. 配置 /etc/hosts

打开 /etc/hosts, 添加:

1
199.232.96.133 raw.githubusercontent.com
3. 将配置文件下载到本地并执行安装
1
2
3
4
5
mkdir ./k8s-dashboard  & cd ./k8s-dashboard 

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml --no-check-certificate

kubectl apply -f recommended.yaml

**PS: **

不下载配置文件到本地也是可以的,直接执行官方文档语句: kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml, 下载本地是为了学习配置文件时如何写的

访问 dashboard

dashboard web ui 的访问方式有很多种,官方文档提供了最基本的三种方式。这里采用最简单的 port-forward 方式。需要注意的是,根据版本的不同,某些参数会有变化,比如命名空间,结合实际情况安装

1. 创建 Service Account
1
2
3
4
5
6
7
8
9
cat >serviceAccount.yaml <<EOF 
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
EOF

kubectl apply -f serviceAccount.yaml
2. 创建 ClusterRoleBinding
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat ClusterRoleBinding.yaml <<EOF 
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
EOF

kubectl apply -f - ClusterRoleBinding.yaml
3. 生成Bearer Token

vim gentoken.sh. 添加:

1
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}') > token |sh

token 文件内容如下:

4. kubectl port-forward
1
kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8080:443  --address='0.0.0.0'

5. 登录

浏览器访问: https://$k8s-master-ip:8080, 可以看到登录页面:

复制token粘贴登录, 登陆成功后就可以看到k8s的集群信息页面了。