从零搭建k8s集群-Web管理界面dashboard

1.下载yaml文件

[root@k8s-master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
  • 将名称空间修改为默认system
    [root@k8s-master ~]# sed -i '/namespace/ s/kubernetes-dashboard/kube-system/g' recommended.yaml

2.下载镜像

grep "image:" recommended.yaml #查看使用的镜像
从零搭建k8s集群-Web管理界面dashboard
  • 由于yaml配置文件中指定的镜像,所有节点都拉取指定版本镜像
[root@k8s-master ~]# docker pull kubernetesui/dashboard:v2.4.0
[root@k8s-master ~]# docker pull kubernetesui/metrics-scraper:v1.0.7

3.修改yaml文件

  • NodePort方式:为了便于本地访问,修改yaml文件,将service改为NodePort 类型。
[root@k8s-master ~]# vim recommended.yaml
...
30 ---
 31 
 32 kind: Service
 33 apiVersion: v1
 34 metadata:
 35   labels:
 36     k8s-app: kubernetes-dashboard
 37   name: kubernetes-dashboard
 38   namespace: kube-system
 39 spec:
 40   type: NodePort   #增加type: NodePort
 41   ports:
 42     - port: 443
 43       targetPort: 8443
 44       nodePort: 31260  #增加nodePort: 31260,可根据实际情况调整
 45   selector:
 46     k8s-app: kubernetes-dashboard
 47 
 48 ---
从零搭建k8s集群-Web管理界面dashboard

4.创建应用

[root@k8s-master ~]# kubectl apply -f recommended.yaml
从零搭建k8s集群-Web管理界面dashboard
  • 查看Pod 的状态为running说明dashboard已经部署成功。
[root@master ~]# kubectl get pod --namespace=kube-system -o wide | grep dashboard
从零搭建k8s集群-Web管理界面dashboard
  • Dashboard会在 kube-system namespace中创建自己的Deployment和 Service:
从零搭建k8s集群-Web管理界面dashboard
[root@k8s-master ~]# kubectl get service kubernetes-dashboard --namespace=kube-system
从零搭建k8s集群-Web管理界面dashboard

5.访问dashboard

官方参考文档:https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/#accessing-the-dashboard-ui

  • 查看service,TYPE类型已经变为NodePort,端口为31260
[root@k8s-master ~]# kubectl get service -n kube-system | grep dashboard
从零搭建k8s集群-Web管理界面dashboard
  • 查看dashboard运行在那台机器上面
[root@kub-k8s-master ~]# kubectl get pods -n kube-system -o wide
  • 通过浏览器访问:https://master:31260 , 如提示:“你的连接不是专用连接”无法访问,Google浏览器或者Edge浏览器空白处输入thisisunable回车即可
从零搭建k8s集群-Web管理界面dashboard

6.Dashboard通过token认证登录

  • Dashboard 支持 Kubeconfig 和 Token 两种认证方式,这里选择Token认证方式登录。

6.1 创建在kube-system名称空间中创建serviceAccount

[root@k8s-master ~]# kubectl create serviceaccount dashboard-admin -n kube-system
[root@k8s-master ~]# kubectl describe sa/dashboard-admin -n kube-system
从零搭建k8s集群-Web管理界面dashboard

6.2 dashboard-admin 绑定 clusterbinding 的 sa

  • 这样绑定后,serviceaccount 的 dashboard-admin 就有集群的管理员权限。
[root@k8s-master ~]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:\dashboard-admin
[root@k8s-master ~]# kubectl describe clusterrolebinding/dashboard-cluster-admin
从零搭建k8s集群-Web管理界面dashboard

6.3 获取 serviceaccount 的 dashboard-admin 的secret信息

  • 在创建好serviceaccount的dashboard-admin后,会在kube-system名称空间下的secret中,自动创建一个以dashboard-admin-token开头的 secret
[root@k8s-master ~]# kubectl get secret -n kube-system
从零搭建k8s集群-Web管理界面dashboard

从上图已经查看到了,下面需要查看一下详细信息即可获取到token的值

[root@k8s-master ~]# kubectl describe secret/dashboard-admin-token-g7sdf -n kube-system
从零搭建k8s集群-Web管理界面dashboard
  • 上面查看到的token 后面的一大串就是,把这一串复制到页面中就可以登录。登陆后界面如下:
从零搭建k8s集群-Web管理界面dashboard

原创文章,作者:jacky,如若转载,请注明出处:https://kubiyun.com/archives/378

(0)
上一篇 2026-01-27 09:38
下一篇 2026-02-04 11:38

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注