目录

一、下载dashboard的yaml文件

二、修改dsashboard的yaml文件镜像

三、修改dashboard的yaml文件内容

四、创建dashboard


通常而言kubernetes中完成的所有操作都是通过命令行工具kubectl完成的

但为了提供更丰富的用户体验,k8s还开发了一个基于web的用户界面Dashboard

dashboard是官方提供的一个K8S的前端组件,使操作更简便

查看目前k8s集群版本

一、下载dashboard的yaml文件

 1、进入github官方下载 

每个版本的dashboard可支持的K8S集群版本不一样,需要根据自己K8S的版本选择对应的dashboard, 比如我K8S版本是1.24; dashboard-v2.6.1可以支持1.24

2、下载yaml文件,页面有下载链接

https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml
创建个目录用来存放dashborad相关文件
root@k8s-deploy:~/yaml/20220724# mkdir dashboard-v2.6.1
root@k8s-deploy:~/yaml/20220724# cd dashboard-v2.6.1下载yaml文件
root@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml将yaml修改名称
root@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# mv recommended.yaml dashboard-v2.6.1.yaml

二、修改dsashboard的yaml文件镜像

1、yaml文件中有两个镜像是互联网的,这里我把这两个镜像下载到本地harbor

2、下载镜像

把yaml文件中的两个镜像下载下来
root@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# docker pull kubernetesui/dashboard:v2.6.1
root@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# docker pull kubernetesui/metrics-scraper:v1.0.8重新打标签
root@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# docker tag kubernetesui/dashboard:v2.6.1 harbor.magedu.net/baseimages/dashboard:v2.6.1
root@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# docker tag kubernetesui/metrics-scraper:v1.0.8 harbor.magedu.net/baseimages/metrics-scraper:v1.0.8上传到harbor服务器
root@k8s-deploy:~/yaml/20220724/dashboard-v2.5.1# docker push harbor.magedu.net/baseimages/dashboard:v2.6.1
root@k8s-deploy:~/yaml/20220724/dashboard-v2.5.1# docker push harbor.magedu.net/baseimages/metrics-scraper:v1.0.8

3、修改yaml文件,把镜像更换为本地harbor镜像

把两个镜像换成harbor镜像root@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# vim dashboard-v2.6.1.yaml
containers:- name: kubernetes-dashboardimage: harbor.magedu.net/baseimages/dashboard:v2.6.1imagePullPolicy: Alwaysports:- containerPort: 8443protocol: TCP
containers:- name: dashboard-metrics-scraperimage: harbor.magedu.net/baseimages/metrics-scraper:v1.0.8ports:- containerPort: 8000protocol: TCP

三、修改dashboard的yaml文件内容

dashboard默认情况只限于K8S内部访问,因此需要再暴露端口给客户端外部环境访问

在Service资源里增加两行

service端口是443,而后把请求再转给pod的8443端口,手动增加NodePort类型,再增加个30000端口

上面的30000端口必须要在hosts文件中定义的端口范围之内

四、创建dashboard

1、创建资源

root@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# kubectl apply -f dashboard-v2.6.1.yaml

2、 访问下node节点的30000端口,一定要是https协议才行,因为它是有证书的

显示需要token

dashboard只是个访问页面,并没有创建访问的用户;用户需要自己手动创建

3、创建访问用户

创建资源文件
root@k8s-deploy:~/yaml/20220724/dashboard-v2.5.1# vim admin-user.yaml
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-user          #用户创建在下面的namespace中namespace: kubernetes-dashboard---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding        #做角色绑定
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.io        #api版本kind: ClusterRole        #授予admin-user用户ClusterRole(集群管理员)权限name: cluster-admin
subjects:
- kind: ServiceAccountname: admin-user        #该用户与上面 ClusterRole角色进行绑定,拥有集群管理员权限namespace: kubernetes-dashborad  创建资源
root@k8s-deploy:~/yaml/20220724/dashboard-v2.5.1# kubectl apply -f admin-user.yaml
serviceaccount/admin-user created
clusterrolebinding.rbac.authorization.k8s.io/admin-user created
创建Secret文件
root@k8s-deploy:~/yaml/20220724/dashboard-v2.5.1# vim admin-secret.yaml
apiVersion: v1
kind: Secret                             #类型是Secret
type: kubernetes.io/service-account-token
metadata:name: dashboard-admin-user             #Secret的名字是这个namespace: kubernetes-dashboard        #创建在这个namesapce中annotations:                           #注解kubernetes.io/service-account.name: "admin-user"   # 注解内容是和哪个service-account进行绑定是和admin-user进行绑定 ,也就是为admin-user创建一个叫做dashboard-admin-user名字的Secret,这个Secret中就包含它需要登录的tonken了创建资源
root@k8s-deploy:~/yaml/20220724/dashboard-v2.5.1# kubectl apply -f admin-secret.yaml
secret/dashboard-admin-user created

4、取出tonken

root@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# kubectl get secrets -A | grep admin
kubernetes-dashboard   dashboard-admin-user              kubernetes.io/service-account-token   3      17sroot@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# kubectl describe secrets dashboard-admin-user -n kubernetes-dashboard
Name:         dashboard-admin-user
Namespace:    kubernetes-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-userkubernetes.io/service-account.uid: 52419154-cc5f-4276-9b1a-2c76eb08f2a9Type:  kubernetes.io/service-account-tokenData
====
namespace:  20 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6ImIxX29tV0s1MEZyT216ZDhiN0lGNGx3VUQxQ1ltQ3ZaWTZmRm1zQkJMZHMifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdXNlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJhZG1pbi11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNTI0MTkxNTQtY2M1Zi00Mjc2LTliMWEtMmM3NmViMDhmMmE5Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVybmV0ZXMtZGFzaGJvYXJkOmFkbWluLXVzZXIifQ.DX-sID2NzIjIzCMgMb9ugcC-7icaSiLOGZyWp1-PiY_W4oKaphuHhSspEH1M98agOrP-NIrzuKko_GCqxyEVmrJ6Mws7YAGE80_RQpxAyERMA4M0qQv8JPw8U3IJMmvw34xnyJLYBiSaLv4RVIG2IqPu635mEIZNmkZ7r5Cs0DhOxCxnK086QNj1zMqdu7p-NEmYGZedS1TAw7rVW8gBZbgvzViO8jMAZWYf2arN77RbNOPbLTyzCWKc8qwL2fcOpkwSiGCxKzpFV4cnwb4n8RCgtxgi5B3q5OwOyQC_SfCFOzr_RHqq65voZ0SS2buMk9SwC-q_k-dMlxe1dqYhjw
ca.crt:     1302 bytes

把tonken取出来就可以登录页面了

记一次报错:

登录页面后发现没有任何资源

看了下pod状态有报错

root@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# kubectl logs -f dashboard-metrics-scraper-67969bbbb6-hprg5 -n kubernetes-dashboard
W1121 06:50:20.910976       1 client_config.go:617] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
{"level":"info","msg":"Kubernetes host: https://10.100.0.1:443","time":"2022-11-21T06:50:20Z"}
{"level":"info","msg":"Namespace(s): []","time":"2022-11-21T06:50:20Z"}
{"level":"error","msg":"Error scraping node metrics: the server could not find the requested resource (get nodes.metrics.k8s.io)","time":"2022-11-21T06:57:20Z"}
10.200.137.64 - - [21/Nov/2022:06:57:21 +0000] "GET /healthz HTTP/1.1" 200 13 "" "dashboard/v2.6.1"
172.31.7.112 - - [21/Nov/2022:06:57:29 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
172.31.7.112 - - [21/Nov/2022:06:57:39 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
172.31.7.112 - - [21/Nov/2022:06:57:49 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
10.200.137.64 - - [21/Nov/2022:06:57:51 +0000] "GET /healthz HTTP/1.1" 200 13 "" "dashboard/v2.6.1"
172.31.7.112 - - [21/Nov/2022:06:57:59 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
172.31.7.112 - - [21/Nov/2022:06:58:09 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
172.31.7.112 - - [21/Nov/2022:06:58:19 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
{"level":"error","msg":"Error scraping node metrics: the server could not find the requested resource (get nodes.metrics.k8s.io)","time":"2022-11-21T06:58:20Z"}
10.200.137.64 - - [21/Nov/2022:06:58:21 +0000] "GET /healthz HTTP/1.1" 200 13 "" "dashboard/v2.6.1"
172.31.7.112 - - [21/Nov/2022:06:58:29 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
172.31.7.112 - - [21/Nov/2022:06:58:39 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
172.31.7.112 - - [21/Nov/2022:06:58:49 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
10.200.137.64 - - [21/Nov/2022:06:58:51 +0000] "GET /healthz HTTP/1.1" 200 13 "" "dashboard/v2.6.1"
172.31.7.112 - - [21/Nov/2022:06:58:59 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
172.31.7.112 - - [21/Nov/2022:06:59:09 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
172.31.7.112 - - [21/Nov/2022:06:59:19 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.24"
root@k8s-deploy:~/yaml/20220724/dashboard-v2.6.1# kubectl logs -f kubernetes-dashboard-557cd5b7d6-qcmc9 -n kubernetes-dashboard
2022/11/21 06:50:20 Starting overwatch
2022/11/21 06:50:20 Using namespace: kubernetes-dashboard
2022/11/21 06:50:20 Using in-cluster config to connect to apiserver
2022/11/21 06:50:20 Using secret token for csrf signing
2022/11/21 06:50:20 Initializing csrf token from kubernetes-dashboard-csrf secret
2022/11/21 06:50:20 Empty token. Generating and storing in a secret kubernetes-dashboard-csrf
2022/11/21 06:50:20 Successful initial request to the apiserver, version: v1.24.3
2022/11/21 06:50:20 Generating JWE encryption key
2022/11/21 06:50:20 New synchronizer has been registered: kubernetes-dashboard-key-holder-kubernetes-dashboard. Starting
2022/11/21 06:50:20 Starting secret synchronizer for kubernetes-dashboard-key-holder in namespace kubernetes-dashboard
2022/11/21 06:50:21 Initializing JWE encryption key from synchronized object
2022/11/21 06:50:21 Creating in-cluster Sidecar client
2022/11/21 06:50:21 Metric client health check failed: the server is currently unable to handle the request (get services dashboard-metrics-scraper). Retrying in 30 seconds.
2022/11/21 06:50:21 Auto-generating certificates
2022/11/21 06:50:21 Successfully created certificates
2022/11/21 06:50:21 Serving securely on HTTPS port: 8443
2022/11/21 06:50:51 Successful request to sidecar
2022/11/21 06:54:40 http: TLS handshake error from 10.200.166.128:30606: remote error: tls: bad certificate
2022/11/21 06:54:40 http: TLS handshake error from 10.200.166.128:28961: remote error: tls: bad certificate
2022/11/21 06:54:40 http: TLS handshake error from 10.200.166.128:9274: remote error: tls: bad certificate
2022/11/21 06:54:40 http: TLS handshake error from 10.200.166.128:29868: remote error: tls: bad certificate

dashboard的安装使用相关推荐

  1. [k8s]kubernetes dashboard的安装

    之前一直使用的是命令行,但是又觉得如果连控制台都还没有动手实践过会不会有点low 1.安装dashboard 参阅官网的安装方法,https://github.com/kubernetes/dashb ...

  2. Dashboard的安装及其配置

    云计算基础架构平台构建与应用基于centos6.5 (九)Dashboard的安装及其配置 实训涉及节点 controller 实训目标 完成Dashboard基本组件的安装: 完成Dashboard ...

  3. Kubernetes Dashboard的安装与配置

    Kubernetes Dashboard的安装与配置 一 背景 通过kubeadm快速完成了kubernetes的安装,即可迅速地体验到kubernetes的强大功能.美中不足的是,只能通过命令来查看 ...

  4. OpenStack Murano Dashboard(Kilo)安装

    2019独角兽企业重金招聘Python工程师标准>>> 官方文档是安装到虚拟环境中去,且其中的步骤有些问题,这里总结下做备忘. ##前提 murano服务已经安装好 openstac ...

  5. Centos7 安装 Kubernetes dashboard (安装篇)

    ----安装dashboard---- http://docs.minunix.com/docker/kubernetes-dashboard.yaml 下载 http://www.jb51.net/ ...

  6. Grafana Dashboard linux安装图表插件

    进入Grafana插件官网:https://grafana.com/grafana/plugins 这里使用的是安装插件方法2 根据官网在linux服务器安装grafana专用docker容器之后,先 ...

  7. Kubernetes — 安装 Dashboard UI

    目录 文章目录 目录 安装 Dashboard 访问 Dashboard UI 安装 Dashboard 默认情况下不会部署 Dashboard,需要我们手动安装.在安装 Dashboard 之前我们 ...

  8. 一起来学k8s 06.安装dashboard

    Dashboard Install Kubernetes Dashboard就是k8s集群的web界面,集合了所有命令行可以操作的所有命令.界面如下所示 环境 192.168.48.101 maste ...

  9. k8s 的etcd备份、CoreDNS和dashboard安装,集群升级,yaml详解

    前言:本文k8s环境搭建是采用kubeasz 3.2.0方式二进制部署的,这个种部署方式是经过CNCF(云原生基金会)认证的,可以用在生产上,本演示环境已装好k8s和calico 安装包链接:http ...

最新文章

  1. 如何用飞书统计并跟进个税年度汇算清缴情况?
  2. dubbo源码解析-集群容错架构设计
  3. U3D 场景切换时 脚本对象,GO对象,资源对象的问题
  4. java selenium (六) XPath 定位
  5. wxWidgets:编写一个应用程序
  6. 协同过滤算法简单实现
  7. 使用数据库的压测工具super-smack测试mysql数据库性能
  8. [20160606]windows下使用bbed的疑问.txt
  9. 洛谷3396 哈希冲突 【分块】
  10. [转]SAP行业知识Qamp;A一览表
  11. Eclipse环境下配置Tomcat
  12. 软件测试简历常见问题
  13. oracle12c备份和恢复,oracle12C使用RMAN备份和恢复
  14. Spring定时任务表达式示例
  15. 华为手机上的网上邻居怎么用_华为手机网络邻居功能
  16. Esac代表什么意义?
  17. 腾讯区块链的三年与它的打法 |链捕手
  18. 计算机主机拆转视频,新旧电脑数据转移(如何将旧电脑数据转移到新电脑)
  19. 说明关系型数据库通过索引提升查询效率的背后原理
  20. 百度CEO李彦宏为何这么拼

热门文章

  1. 什么是数据可视化?企业如何进行数据可视化?
  2. Cannot use JSX unless the ‘--jsx‘ flag is provided.
  3. 资源管理器中双击文件夹会在新窗口打开
  4. Maven工程报错:No goals have been specified for this build. You must specify a valid lifecycle phase or a
  5. 华为hcie中QOS 流量整形 双速率的概念-ielab
  6. 【深入Java虚拟机】之七:Javac编译与JIT编译
  7. Python个人博客项目-3.用户应用开发
  8. python爬取古诗文网站诗文一栏的所有诗词
  9. Roguelike诞生记
  10. (翻译)设计人员应去除正文中的孤行内容的原因