一、资源准备
安装 kubernetes dashboard 需要实现准备两个镜像包和一个yaml部署文件。
# 下载镜像包(有条件访问外网的话可以不用准备,后续直接拉取镜像)
[root@k8s-master ]# docker load -i dashboard-v2.7.0.tar
Loaded image: kubernetesui/dashboard:v2.7.0
[root@k8s-master ]# docker load -i metrics-scraper-v1.0.8.tar
Loaded image: kubernetesui/metrics-scraper:v1.0.8
# 下载对应版本的部署文件(我这里用的是v2.7.0)
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
二、安装部署
1、修改文件内容
为了方便,且之前镜像只有在主节点上load,这里也选择主节点上运行,并且通过nodePort暴露出端口进行访问。
官方默认给的模板内:kubernetes-dashboard的镜像拉取策略为always,可能会导致后续本地有镜像的情况下一直拉取镜像失败的问题,这里顺手改为IfNotPresent。
# 编辑yaml文件
[root@k8s-master ~]# vi recommended.yaml
32 kind: Service
...
43 nodePort: 30098
44 type: NodePort
170 kind: Deployment
...
187 spec:
188 nodeName: k8s-master.obboda.org
...
195 imagePullPolicy: IfNotPresent
256 kind: Deployment
...
273 spec:
274 nodeName: k8s-master.obboda.org
2、创建部署
文件内容修改完之后,直接进行部署操作。
[root@k8s-master ~]# kubectl apply -f recommended.yaml
3、创建 SA 绑定集群管理员
# 创建集群管理员级别的 ServiceAccount
[root@k8s-master ~]# kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
# 绑定集群管理员角色
[root@k8s-master ~]# kubectl create clusterrolebinding dashboard-admin-binding \
--clusterrole=cluster-admin \
--serviceaccount=kubernetes-dashboard:dashboard-admin
三、访问登录
访问方式(注意是https):https://IP:30098

这里分两种情况获取token:
1、token 获取:k8s 1.24版本之前
在k8s之前的版本,ServiceAccount 创建后会自动生成 Secret 令牌,并且永久生效:
# token存放在secret里面
[root@k8s-master ~]# kubectl -n kubernetes-dashboard get secret
NAME TYPE DATA AGE
dashboard-admin-token-t4tw6 kubernetes.io/service-account-token 3 40d
default-token-vg67f kubernetes.io/service-account-token 3 40d
kubernetes-dashboard-certs Opaque 0 40d
kubernetes-dashboard-csrf Opaque 1 40d
kubernetes-dashboard-key-holder Opaque 2 40d
kubernetes-dashboard-token-kr75h kubernetes.io/service-account-token 3 40d
# 通过 describe 去获取 token 内容
[root@k8s-master ~]# kubectl -n kubernetes-dashboard describe secret kubernetes-dashboard-token-kr75h
2、token 获取:k8s 1.24版本之后
在k8s之后的版本,ServiceAccount 创建后不会自动生成 Secret 令牌,只能通过手动去生成,并且默认有效时间为一小时:
# 默认有效时间为1小时
[root@k8s-master ~]# kubectl -n kubernetes-dashboard create token dashboard-admin
# 也可以指定有效时间范围
[root@k8s-master ~]# kubectl -n kubernetes-dashboard create token dashboard-admin --duration=168h
3、token 登录
拿到token之后就可以进行登录了。

8188

被折叠的 条评论
为什么被折叠?



