26-k8s的附加组件-图形化管理工具dashboard

一、简单介绍

        Dashboard是k8s集群管理的一个WebUI,它是k8s的一个附加组件,所以需要单独来部署;

        我们可以通过图形化的方法,创建、删除、修改、查询k8s资源;

二、部署安装dashboard组件

Github地址:GitHub - kubernetes/dashboard: General-purpose web UI for Kubernetes clusters

参考链接:Release v2.5.1 · kubernetes/dashboard · GitHub

可以通过上述地址,查询对应k8s的版本,来下载对应的dashboard;

百度云盘地址:

链接:https://pan.baidu.com/s/14Wu-gRjfDa8IWCawY6O72g?pwd=ni8n 
提取码:ni8n

1,上传dashboard本地文件

本次学习,我们直接使用我给大家准备好的百度网盘的文件;就不需要大家“越界”下载了;

[root@k8s231 dashboard]# rz -E
[root@k8s231 dashboard]# ll
-rw-r--r-- 1 root root 7660 Jan  6 08:59 dashboard_.yaml

2,修改nodeport的端口范围

        以前修改过的,不用修改,或者你可以不修改,而是修改dashboard的文件中的svc资源的端口范围为30000-32767;

        本次学习,我们不修改文件,只修改k8s的svc的nodeport的端口范围;

[root@k8s231 dashboard]# vim /etc/kubernetes/manifests/kube-apiserver.yaml 
.............
spec:
  containers:
  - command:
    - kube-apiserver
    #下面这一条加进去,就修改完成了;自动就会更新;稍等一会;先会崩溃;
    - --service-node-port-range=3000-50000
    - --advertise-address=10.0.0.231
    ......

3,创建dashboard资源

[root@k8s231 dashboard]# kubectl apply -f dashboard_.yaml

4,查看验证是否部署成功

#查看是否有新的名称空间?

[root@k8s231 dashboard]# kubectl get ns
................
kubernetes-dashboard   Active   5m58s

#查看,dashboard名称空间下的pod,是否running?

[root@k8s231 dashboard]# kubectl get pods -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-799d786dbf-558zs   1/1     Running   0          6m16s
kubernetes-dashboard-fb8648fd9-twr8k         1/1     Running   0          6m16s

5,电脑浏览器访问测试

        访问:https://10.0.0.231:8443

        浏览器会显示不安全的证书链接;点击【高级】也没用,怎么办?

        温馨提示:如果打不开网页,可以鼠标单击空白处,,依次输入“thisisunsafe”,即可自动跳转进入页面了;

        点击空白处,写上“thisisunsafe”之后,会自动进入登录页面

        我们可以看见上图中:有两个登录选项,token登录和kubeconfig登录;

6,token登录方式登录dashboard

· 查看dashboard的token

        其实就是先查看dashboard的sa用户的详细信息;

我们可以看到,sa用户有一个token字段;这个token字段本质上也是一个secrets资源;

[root@k8s231 dashboard]# kubectl -n kubernetes-dashboard describe sa kubernetes-dashboard | grep Tokens
Tokens:              kubernetes-dashboard-token-2rrz9

我们继续查看用户token的secrets资源详细信息,就可以获取到token的详细编码信息了;

[root@k8s231 dashboard]# kubectl -n kubernetes-dashboard describe secrets kubernetes-dashboard-token-2rrz9

.........

token:      eyJhbGciOiJSUzI1NiIsImtpZCI6ImhJc3J4Y0JsRGQtWlVDZE9GbDkxQVRMMVJZaUlVNnRxWTFzZFBPdU5hM0kifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi0ycnJ6OSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjY2NjI1NDZmLTRhOTctNDc5MS04ZGI3LWZhNTFhZTc4M2Y3OCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.KpE4z0IX_404d_YhdjjcrPzlV-IovqhCx8AT9PaswK35q5AYeY6hf_Eu7oXLDiNlnIKVCscEp8BkpWfiTHZsc1Xfbo4Fw-95-aKXYS-ZOOwWF5vY2UjfQ-fbHqo5tbZN04GLzn67xaE096pVXVz6G6JQwGWIqCHFYcQMn_rp_OYOfPG4TkJ3-nMEq3NJB7gYf2X5xmhvMkEOTOgMwbAw-90Sn3EXW1nHhb6KsyWvKpq65qYnioqNu6KgXub1UD6caXWnMpOaaGE29Tm6_r55Hi_fIaLPwbhHUJ3mx7m99unmAiPDh3wsIhBcFYmbSzWJjGyLpzFJEhs-miKYuVpYNQ
 

· 复制token编码输入到页面token为止

点击【登录】虽然登录进来了,但是,显示没有权限;

· 解决权限不足的问题

1,创建用户绑定角色

[root@k8s231 dashboard]# cat sa-dash.yaml 
#创建sa用户叫xinjizhiwa
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  # 创建一个名为"xinjizhiwa"的账户
  name: xinjizhiwa
  namespace: kubernetes-dashboard

---
#绑定k8s集群中的最大权限的角色与xinjizhiwa用户
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-oldboyedu
  namespace: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  # 既然绑定的是集群角色,那么类型也应该为"ClusterRole",而不是"Role"哟~
  kind: ClusterRole
  # 关于集群角色可以使用"kubectl get clusterrole | grep admin"进行过滤哟~
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    # 此处要注意哈,绑定的要和我们上面的服务账户一致哟~
    name: xinjizhiwa
    namespace: kubernetes-dashboard
 

[root@k8s231 dashboard]# kubectl apply -f sa-dash.yaml

· 使用新用户的token登录dashboard

1,查看新用户token

[root@k8s231 dashboard]# kubectl -n kubernetes-dashboard describe sa xinjizhiwa | grep Tokens 
Tokens:              xinjizhiwa-token-crn87

[root@k8s231 dashboard]# kubectl -n kubernetes-dashboard describe secrets xinjizhiwa-token-crn87

..................

token:      eyJhbGciOiJSUzI1NiIsImtpZCI6ImhJc3J4Y0JsRGQtWlVDZE9GbDkxQVRMMVJZaUlVNnRxWTFzZFBPdU5hM0kifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJ4aW5qaXpoaXdhLXRva2VuLWNybjg3Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Inhpbmppemhpd2EiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1MzBkMWI2ZS1hNmFjLTRiZGItODhlMC1iZTI5MGNkYmEwZWIiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6eGluaml6aGl3YSJ9.KgdVd3wBiwQVrmIr4ZgXNQrUR-fMDsJfxy40uZacosqTErnYP89wDMht-IynVfD2pDV43D8NlPdIGe2UM2bNpkxIVw46umow2bIdpJWBCqbAU0F4FrRfT2GWw1IMqLDulvTH7CLBjfUhpMTLB2xhJJk1ZITUJHJnbm8uGu7ZuOw4dLbTysxiADSO8KjlC7hYF6DIq3jDcxSkZwXroNryhai-akubES9E8nSARxMp9xbYOv5xBb2feNXJId_TSbXRbDYibcig3-tXWxkD5avBWrgLb7A5raSSvAwj6_T2BbcR1Irs11wFcwnt7HM_oHsVoPXrHS4bAyc1P9kzr_vrRg

2,使用新用户token登录

7,kubeconfig文件方式登录dashboard

· 生成kubeconfig文件

先编辑生成kubeconfig文件的脚本

[root@k8s231 dashboard]# cat kc.sh 
#!/bin/bash

#用户token的变量
XINJIZHIWA_TOKEN="eyJhbGciOiJSUzI1NiIsImtpZCI6ImhJc3J4Y0JsRGQtWlVDZE9GbDkxQVRMMVJZaUlVNnRxWTFzZFBPdU5hM0kifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi0ycnJ6OSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjY2NjI1NDZmLTRhOTctNDc5MS04ZGI3LWZhNTFhZTc4M2Y3OCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.KpE4z0IX_404d_YhdjjcrPzlV-IovqhCx8AT9PaswK35q5AYeY6hf_Eu7oXLDiNlnIKVCscEp8BkpWfiTHZsc1Xfbo4Fw-95-aKXYS-ZOOwWF5vY2UjfQ-fbHqo5tbZN04GLzn67xaE096pVXVz6G6JQwGWIqCHFYcQMn_rp_OYOfPG4TkJ3-nMEq3NJB7gYf2X5xmhvMkEOTOgMwbAw-90Sn3EXW1nHhb6KsyWvKpq65qYnioqNu6KgXub1UD6caXWnMpOaaGE29Tm6_r55Hi_fIaLPwbhHUJ3mx7m99unmAiPDh3wsIhBcFYmbSzWJjGyLpzFJEhs-miKYuVpYNQ"

#设置集群
kubectl config set-cluster     xinjizhiwa-cluster --server=https://10.0.0.231:6443 --kubeconfig=xjzw.conf

#设置客户端
kubectl config set-credentials xinjizhiwa-client  --token=${XINJIZHIWA_TOKEN} --kubeconfig=xjzw.conf

#集群结合客户端
kubectl config set-context     xinjizhiwa-user    --cluster=xinjizhiwa-cluster --user=xinjizhiwa-client --kubeconfig=xjzw.conf

#声明使用上下文生成kubeconfig文件
kubectl config use-context xinjizhiwa-user --kubeconfig=xjzw.conf

执行脚本生成文件

[root@k8s231 dashboard]# bash kc.sh 
[root@k8s231 dashboard]# ll
................
-rw------- 1 root root 1305 Feb 23 03:53 xjzw.conf

导出文件到本地电脑桌面

上传到dashboard页面为止

· 点击登录

至此,两种方式的登录,就成功了;

三、使用dashboard

1,创建资源清单

· 第一种方式

手动编辑资源清单

· 第二种方式

上传yaml文件创建

· 第三种方式

至此,dashboard图形化管理工具学习完毕;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/488506.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

路飞项目--06

redis介绍和安装 # 数据库: 关系型数据库:mysql、oracle、postgrasql、sqlserver、sqlite IBM:服务器 Oracle:数据库 达梦 EMC:存储 非关系型数据库: redis、mongodb、es…

车载电子电器架构 —— 车辆模式管理

车载电子电器架构 —— 车辆模式管理 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己…

MATLAB使用绘图plot制作动态GIF

文章目录 1 前言2 DemoDemo 1 - 不使用函数Demo 2 - 使用函数 1 前言 在PPT展示或者博客创作中,有时需要插入动态图如GIF,来演示算法效果或者结果。在MATLAB中,可以通过一些代码,将绘图plot转化为动态的GIF。 其大致方法为&…

【Java】java异常处理机制(实验五)

目录 一、实验目的 二、实验内容 三、实验小结 一、实验目的 1、理解java的异常处理机制 2、掌握try catch结构和thow和thows关键字的用法 二、实验内容 1、编写一个程序,输入某个班某门课程成绩,统计及格人数、不及格人数及课程平均分。设计一个异…

查看navicat保存的数据库连接密码

背景 经常使用navicat的朋友可能会碰到忘记数据库连接密码的情况,自然会想到navicat连接配置中就保存了密码。 个人经验,按以下步骤可查看密码明文 本人在mac上使用的navicat版本 1,导出connection_local.ncx 点击OK导出保存为connection_l…

AT7456E集成了EEPROM的显示器芯片

AT7456E 是一款集成了 EEPROM 的单通道、单色随屏显示发生器,集成了视频驱动器、同步分离器、视频分离开关以及 EEPROM,提高了系统的集成度,有效降低了系统成本。 优势 1.采用符合 NTSC 和 PAL 制式的 512 个用户可编程字符,适合…

fpga_硬件加速引擎

一 什么是硬件加速引擎 硬件加速引擎,也称硬件加速器,是一种采用专用加速芯片/模块替代cpu完成复杂耗时的大算力操作,其过程不需要或者仅需要少量cpu参与。 二 典型的硬件加速引擎 典型的硬件加速引擎有GPU,DSP,ISP&a…

【三、接口协议与抓包】TCP/UDP协议的基本实现

你好啊!我是山茶,一个持续探索 AI 测试之路的程序员。 TCP 协议与 TCP/IP 协议之间的关系,TCP 与 UDP 包含在 TCP/IP 中,TCP/IP 是协议簇名称 TCP (传输控制协议) 和 UDP (用户数据报协议) 是 TCP/IP 协议簇中,两个互…

数据结构与算法相关题解20240224

数据结构与算法相关题解 一、1. 两数之和二、121. 买卖股票的最佳时机三、122. 买卖股票的最佳时机 II四、169. 多数元素五、229. 多数元素 II六、55. 跳跃游戏七、45. 跳跃游戏 II 一、1. 两数之和 简单 给定一个整数数组 nums 和一个整数目标值 target,请你在该数…

2024全国水科技大会暨流域水环境治理与水生态修复论坛(六)

论坛召集人 冯慧娟 中国环境科学研究院流域中心研究员 刘 春 河北科技大学环境与工程学院院长、教授 一、会议背景 为深入贯彻“山水林田湖是一个生命共同体”的重要指示精神,大力实施生态优先绿色发展战略,积极践行人、水、自然和谐共生理念&…

ETL:数据转换与集成的关键过程

ETL:数据转换与集成的关键过程 在现代数据驱动的世界中,有效地管理和处理数据对于企业的成功至关重要。ETL(提取、转换、加载)是一种关键的数据处理过程,有助于将数据从源系统提取、清洗、转换并加载到目标系统中&…

【Spring】循环依赖

目录标题 什么是循环依赖循环依赖场景Java SE 演示Spring 容器演示三级缓存核心知识三级缓存四大方法三级缓存中的迁移 三级缓存源码分析源码思维导图 源码图例课前问题推荐阅读 循环依赖是什么?循环依赖的场景有哪一些?三级缓存分别是什么?三…