Kubernetes1.16.2安装Dashboard

Kubernetes Dashboard是Kubernetes提供的Web用户界面,通过Dashboard我们可以将容器化的应用部署到Kubernetes集群中,对容器化的应用进行故障排除以及集群资源管理;可以通过Dashboard查看集群应用详情,创建或修改单个Kubernetes资源(例如Deployments,Jobs,DaemonSets等)。

安装Dashboard

上节我们搭建的Kubernetes集群版本为1.16.2,截至目前为止,与该版本对应的Dashboard版本为v2.0.0-beta5,可以通过https://github.com/kubernetes/dashboard/releases查看:

QQ截图20191029210946.png

下载该版本的Dashboard yaml文件:

1
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml

修改该配置文件:

1
vim recommended.yaml

修改的内容如下图所示:

QQ截图20191029211413.png

接着创建证书:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mkdir dashboard-certs

cd dashboard-certs/

#创建命名空间
kubectl create namespace kubernetes-dashboard

#创建key文件
openssl genrsa -out dashboard.key 2048

#证书请求
openssl req -days 36000 -new -out dashboard.csr -key dashboard.key -subj '/CN=dashboard-cert'

#自签证书
openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt

#创建kubernetes-dashboard-certs对象
kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kubernetes-dashboard

然后执行kubectl create -f ../recommended.yaml命令安装Dashboard。

使用kubectl get service -n kubernetes-dashboard -o wide命令查看是否部署成功:

QQ截图20191029211919.png

创建账号与授权

Dashboard部署好后,接着创建账号:

1
vim dashboard-admin.yaml

内容如下所示:

1
2
3
4
5
6
7
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: kubernetes-dashboard
name: dashboard-admin
namespace: kubernetes-dashboard

创建该账号:

1
kubectl create -f dashboard-admin.yaml

账号创建好后,接着为其授权:

1
vim dashboard-admin-bind-cluster-role.yaml

内容如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: dashboard-admin-bind-cluster-role
labels:
k8s-app: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: dashboard-admin
namespace: kubernetes-dashboard

授权:

1
kubectl create -f dashboard-admin-bind-cluster-role.yaml

访问Dashboard

使用浏览器访问https://192.168.33.12:30008/#/login

QQ截图20191029222406.png

选择Token,Token的值可以用下面的命令获取:

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

QQ截图20191029222542.png

复制该Token到Dashboard:

QQ截图20191029222651.png

点击Sign In:

QQ截图20191029222743.png

安装Metrics Service

上面Dashboard的CPU Usage (cores)和Memory Usage (bytes)列是空的,这是因为Kubernetes的早期版本依靠Heapster来实现完整的性能数据采集和监控功能,Kubernetes从1.8版本开始,性能数据开始以Metrics API的方式提供标准化接口,并且从1.10版本开始将Heapster替换为Metrics Server。

首先在master节点上安装git:

1
yum install git

然后克隆Metrics Server GitHub仓库:

1
git clone https://github.com/kubernetes-sigs/metrics-server.git

修改metrics-server-deployment.yaml:

1
vim metrics-server/deploy/1.8+/metrics-server-deployment.yaml

修改内容如下图所示:

QQ截图20191108195559.png

1
2
3
4
5
6
7
......
imagePullPolicy: IfNotPresent
command:
- /metrics-server
- --kubelet-preferred-address-types=InternalIP
- --kubelet-insecure-tls
......

因为默认metrics service的镜像地址需要科学上网才能拉取,所以在创建之前,我们在node1和node2节点先执行以下操作准备镜像:

1
2
docker pull bluersw/metrics-server-amd64:v0.3.6
docker tag bluersw/metrics-server-amd64:v0.3.6 k8s.gcr.io/metrics-server-amd64:v0.3.6

然后回到master节点,执行:

1
kubectl create -f metrics-server/deploy/1.8+/

QQ截图20191108195421.png

稍等片刻,然后执行kubectl top nodes便可以看到每个节点的CPU和内存使用率了:

QQ截图20191108195522.png

回到Dashboard:

QQ截图20191108200314.png

QQ截图2019102ddd9202540.png

请作者喝瓶肥宅水🥤

0