目录
一、准备工作
1.1 安装或关闭以下服务
1.2 本次安装环境
配置信息 | 说明 |
---|---|
master IP地址 | 192.168.1.10 |
linux系统版本 | CentOS7.4 |
内核 | ml-3.10.0 |
K8S版本 | 1.23.4 |
二、安装
2.1 下载
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
2.2 修改配置文件
vim recommended.yaml
spec:
type: NodePort #新增,NodePort在集群中的主机节点上为Service提供一个代理端口,以允许从主机网络上对Service进行访问
ports:
- port: 443
targetPort: 8443
nodePort: 32232 #指定访问端口
2.3 安装
kubectl apply -f recommended.yaml
kubectl get pods -A #查看运行状态
NAMESPACE NAME READY STATUS RESTARTS AGE
kubernetes-dashboard dashboard-metrics-scraper-799d786dbf-d97vr 1/1 Running 0 3m2s
kubernetes-dashboard kubernetes-dashboard-674846bfb9-5lr4m 1/1 Running 0 3m2s
kubectl get svc -n kubernetes-dashboard #查看暴露端口
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.0.105.149 <none> 8000/TCP 11s
kubernetes-dashboard NodePort 10.0.201.219 <none> 443:32232/TCP 11s
三、登录访问
3.1 访问
https://192.168.1.10:32232 #IP地址+yaml上指定端口
3.2 获取token
kubectl get secret -n kubernetes-dashboard #查看
NAME TYPE DATA AGE
default-token-857n2 kubernetes.io/service-account-token 3 6d22h
kubernetes-dashboard-certs Opaque 0 6d22h
kubernetes-dashboard-csrf Opaque 1 6d22h
kubernetes-dashboard-key-holder Opaque 2 6d22h
kubernetes-dashboard-token-sg2pb kubernetes.io/service-account-token 3 6d22h
kubectl describe secret -n kubernetes-dashboard kubernetes-dashboard-token-sg2pb #获取token
3.3登录
将获取到的token输入进去
四、其他
4.1 访问https://192.168.1.10:32232无法进入
访问会提示攻击者可能试图从192.168.1.10窃取你的信息(例如,密码、消息或信用卡)。如下图所示
临时解决办法:在当前页面用键盘输入thisisunsafe,不是在地址栏输入。页面即会自动刷新进入网页。
4.2登录进去后报错
namespaces is forbidden: User "system:serviceaccount:kubernetes-dashboard:kubernetes-dashboard" cannot list resource "namespaces" in API group "" at the cluster scope
解决办法
kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard #创建dashboard-admin
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin #绑定为集群管理员
kubectl get secret -n kubernetes-dashboard #查看有个dashboard-admin开头的token
NAME TYPE DATA AGE
dashboard-admin-token-45m6q kubernetes.io/service-account-token 3 13s
kubectl describe secret -n kubernetes-dashboard dashboard-admin-token-45m6q #获取token
重新登录后无报错