部署Kubernetes Dashboard

Dashboard简介

Dashboard 是基于网页的 Kubernetes 用户界面。 可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。

Dashboard创建

#创建pods
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

Dashboard pod状态查看

执行命令kubectl get pods -n kubernetes-dashboard查看运行的dashboard pod

[root@k8s-master01 ~]# kubectl get pods -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-5657497c4c-dq5zc   1/1     Running   0          8h
kubernetes-dashboard-78f87ddfc-t9mkl         1/1     Running   0          8h

如果要删除运行的dashboard pod,执行命令kubectl delete pods -n kubernetes-dashboard <pod-name>

Dashboard Service查看

执行命令kubectl get services -n kubernetes-dashboard查看正在运行的dashboard services,可以看到dashboard的name和类型,如果要对外提供访问,可以设置为NodePort,即对外提供端口进行访问,如:kubernetes-dashboard NodePort 10.107.169.51 <none> 443:30368/TCP 8 就是一个对外的服务,而30368则是对外端口。

[root@k8s-master01 ~]# kubectl get services -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.108.113.165   <none>        8000/TCP        8h
kubernetes-dashboard        NodePort    10.107.169.51    <none>        443:30368/TCP   8

修改NodePort类型

上述执行命令已经看到了Service类型,如果你的Service类型是ClusterIP,尝试更改为NodePort类型。这将使得Dashboard可以通过节点的IP地址和指定的端口进行访问。通过命令kubectl edit service kubernetes-dashboard -n kubernetes-dashboard,将type: ClusterIP 改为 type: NodePort

[root@k8s-master01 kubernetes_file]# kubectl edit service kubernetes-dashboard -n kubernetes-dashboard
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
kind: Service
metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |creationTimestamp: "2023-11-21T00:44:43Z"labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboardresourceVersion: "374070"uid: acb66186-6e42-4b80-8087-ed84bf01211e
spec:clusterIP: 10.107.169.51clusterIPs:- 10.107.169.51internalTrafficPolicy: ClusteripFamilies:- IPv4ipFamilyPolicy: SingleStackports:- port: 443protocol: TCPtargetPort: 8443selector:k8s-app: kubernetes-dashboardsessionAffinity: Nonetype: NodePort
status:

再检查 dashboard 服务状态:
运行以下命令检查 `dashboard 服务的状态:

[root@k8s-master01 kubernetes_file]# kubectl get services -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.108.113.165   <none>        8000/TCP        6m49s
kubernetes-dashboard        NodePort    10.107.169.51    <none>        443:30368/TCP   7m2s

Dashboard后台访问

查询dashboard服务,查询到对应的服务与端口,就可通过https://ip+端口,进行访问,如:https://192.168.31.150:30368/
在这里插入图片描述
打开了Kubernetes Dashboard页面

Dashboard token获取

创建服务账户

使用 Kubernetes 的服务帐户机制创建新用户,授予该用户管理员权限并使用与该用户绑定的不记名令牌登录仪表板,重要提示:向仪表板的服务帐户授予管理员权限可能会存在安全风险。

admin-user我们首先使用命名空间中的名称创建服务帐户kubernetes-dashboard,通过命令vim dashboard-adminuser.yaml创建yaml文件,内容如下:

apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard

再通过命令kubectl apply -f dashboard-adminuser.yaml创建它

创建 ClusterRoleBinding
kops在大多数情况下,使用kubeadm或任何其他流行工具配置集群后,ClusterRole cluster-admin集群中已经存在。我们可以使用它并为ClusterRoleBinding我们的ServiceAccount. 如果不存在,那么您需要先创建该角色并手动授予所需的权限。

通过命令vim admin-user-role-binding.yaml

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard

通过命令创建kubectl apply -f admin-user-role-binding.yaml

获取 ServiceAccount 的不记名令牌
现在我们需要找到可用于登录的令牌。执行以下命令:kubectl -n kubernetes-dashboard create token admin-user

[root@k8s-master01 kubernetes_file]# kubectl -n kubernetes-dashboard create token admin-user

将生成的token复制到web即可登录

eyJhbGciOiJSUzI1NiIsImtpZCI6IlgtbmMwN1hQY01SVmU4bUpFS19rVmZSN2ZmQW1sQ05ibzJmc2ZhS0NtTEkifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzAwNTMzOTY4LCJpYXQiOjE3MDA1MzAzNjgsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiZjY1YWYyMDktY2NhYy00OWY2LWFlNzMtMTI1Mzk1OTNlYTZhIn19LCJuYmYiOjE3MDA1MzAzNjgsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.cv2oqAxqPvHKt_QwW_9igHsGeW_WOfnucZiNSdPow_2IqCcboNgIqoThxzllEROBd-9-WohZszignVAPpHtyA03geX5tlKYFdRI5S6HG7g1K3eE8Li_2QvUAi3tlCuIXYnZOGClcHKQFSyEGU3KoTctD0uLiAuwmoLnszGVfJZB2NmVJPxw0C95TWwp2cPNVyVOOJxBWJG5UImDjzAqrthJNERP-3RjySGYgDsklWrar-saWrUrrVGXkm_viX-OCXzjkrPS2mEhHvAP2AUg8Dwp2nUHKlAU7zLgGP9D4nIs0DUyXOTPCj5BUmrcQKrGqqK6F57GRFMH6GHIXyvtazQ

为 ServiceAccount 获取长期持有者令牌
我们还可以使用绑定服务帐户的 Secret 创建一个令牌,该令牌将保存在 Secret 中:

apiVersion: v1
kind: Secret
metadata:name: admin-usernamespace: kubernetes-dashboardannotations:kubernetes.io/service-account.name: "admin-user"   
type: kubernetes.io/service-account-token  

创建Secret后,我们可以执行以下命令来获取Secret中保存的token:

kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath={".data.token"} | base64 -d

复制token登录

eyJhbGciOiJSUzI1NiIsImtpZCI6IlgtbmMwN1hQY01SVmU4bUpFS19rVmZSN2ZmQW1sQ05ibzJmc2ZhS0NtTEkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJmNjVhZjIwOS1jY2FjLTQ5ZjYtYWU3My0xMjUzOTU5M2VhNmEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.WyrSX__DpMdd8PLxhe4Cf0Uwa9fK9i-6hhGC2qyOYxmqv8zJ0qN0JDOE_4WXO1Vr6MC7CJdJVBaRepA9YmR9E88IX2eAoS7O7B14BuNUqsrgG7STCIv4AgIgI29HDTtHvXh2VHcoGO1GWPsItdkgzn19V9U5jswKxXlftJ-mwZyd4_LiRwdurKfzcJLV39oWWezxLM3AjQlwdgkxty7EaOicMtZ6ttYUsPvQl9iHDDcDH8C0wMXnyGhgxjUHVX8kIysMwwdXlMgKtiQ1GhYzC785UtI4S9_nXyaA1QCS-UgPeoMbCmWAhziIugVjimndIVfD-XjCsok1BGfE1FfJhQ

Dashboard登录

输入token
在这里插入图片描述
登录成功
在这里插入图片描述
单击Sign in按钮即可。您现在已以管理员身份登录。
在这里插入图片描述

Doshbrond删除管理员

删除管理员ServiceAccountClusterRoleBinding.

kubectl -n kubernetes-dashboard delete serviceaccount admin-user
kubectl -n kubernetes-dashboard delete clusterrolebinding admin-user

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

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

相关文章

北邮22级信通院数电:Verilog-FPGA(10)第十周实验 实现移位寄存器74LS595(仿真方法验证)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 使用FPGA开发板验证的教程&#xff0c;请参考 北邮…

el-tabs首次进入左边缺失边距解决办法

目前发现是UI渲染的问题&#xff0c;页面首次加载el-tabs__nav-wrap和el-tabs__nav-scroll的左边距莫名丢失&#xff0c;页面跳转走再跳转回来页面就恢复正常了&#xff0c;要想初始时候就正常可以添加下列css代码 .el-tabs__nav-wrap, .el-tabs__nav-scroll{margin-left: 20…

MySql分区

一、什么是分区 MySQL分区是一种数据库设计和管理技术&#xff0c;它允许你将表分割成独立的、具有特定规则的存储单元。每个分区可以独立地进行管理&#xff0c;包括备份、恢复和优化。分区的主要目的是提高查询性能、简化维护以及实现数据的更有效管理。 以下是MySQL分区的…

linux控制台命令

进入root sudo su root 浏览当前文件夹列表 ll ls 查看文件 vim test.txt :q 退出查看模式 上传 sudo rz rz 覆盖上传 rz -y 修改文件名&#xff1a; mv 旧文件名 新文件名 修改文件权限 sudo chmod ar xxx.txt sudo chmod 777 test.txt 7 4 2 1 读写运行权限…

flink 1.17.1的pom.xml模板

flink 1.17.1的pom.xml模板 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apa…

高速数据时代的引领者:ETU-LINK 100G DAC全系列技术简介

伴随科技的不断进步&#xff0c;我们正迅速迈向一个高速数据时代。在这个时代&#xff0c;数据的传输速度已经成为发展的重要因素之一。ETU-LINK推出的100G DAC全系列产品&#xff0c;助力高速数据传输领域的新一轮发展。 一、100G DAC全系列产品解析 100G QSFP28 DAC无源高速…

SQL的连接join

一、连接说明 union、intersect等集合运算&#xff0c;它的特征是以 “行” 为单位进行操作&#xff0c;通俗点说&#xff0c;就是进行这些集合运算&#xff0c;会导致记录行数的增减&#xff0c;使用union会增加记录行数&#xff0c;使用 intersect 或 expect 会减少行记录&a…

后端-锁专题:synchronized(java对象结构、锁的类型、锁升级流程...)

文章目录 对象的结构以及大小内存换算java的常见数据类型以及所占字节数分析对象总共占多少字节&#xff0c;各项占多少字节对象头结构 锁类型锁升级流程 对象的结构以及大小内存换算 java的常见数据类型以及所占字节数 String&#xff1a;8字节 64位 int&#xff1a;4字节 …

【中国大学生计算机设计大赛数据可视化赛道】国奖项目深入剖析—推动乡村振兴可视化分析平台【可视化项目案例-09】

🎉🎊🎉 你的技术旅程将在这里启航! 🚀🚀 本专栏包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章底部可下载对应案例源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不论你是初学者还是资深开发者,这里都有适合你的内容。…

asp.net勤工助学管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目

一、源码特点 asp.net 勤工助学管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 系统运行视频 https://www.bilibili.com/video/BV1Sz4y1F7GP/ 二、功能介绍 本系统使用Microsoft Visual Studio…

Threejs_10 光线投射技术完成画布三维事件交互

你完成了一个threejs的模型之后&#xff0c;里面有很多东西&#xff0c;你咋知道你点击的是哪个呢&#xff1f;&#xff1f;如何触发你点击的事件呢&#xff1f;再canvas画布中可不能和html事件一样直接使用e.target来完成了哦。如何做到呢&#xff1f; 光线投射实现三维定位 …

查看当前目录文件大小的命令(不含子文件)

1、查看当前目录下文件的大小命令&#xff1a; du -sh * 举例&#xff1a; /root/user下面的文件有&#xff1a;bak&#xff08;10G)、adress(5G&#xff09; 、name&#xff08;3G&#xff09; 三个文件架 使用&#xff1a;du -sh * 结果&#xff1a; 10G bak 5…

自动化物流运输设备模组要选择哪种类型?

在自动化物流运输设备中&#xff0c;选择合适的模组类型取决于具体的运输需求和应用场景。 1、同步带模组&#xff1a;同步带模组是一种低噪音、低成本的物流运输设备&#xff0c;适用于中短距离、轻型货物的运输。它采用同步带传动的方式&#xff0c;具有传动准确、运行稳定、…

安卓老项目改造为AndroidX

由于涉及到了包名的改动&#xff0c;如果从Android Support Library升级到AndroidX需要手动去改每一个文件的包名&#xff0c;那可真得要改死了。&#xff08;*是的我改完才发现这个办法&#xff0c;给我改到深呼吸&#xff0c;气人&#xff01; *&#xff09; 为此&#xff0c…

12 分布式锁加入看门狗

1、看门狗的流程图 2、看门狗的代码实现 /****类说明&#xff1a;Redis的key-value结构*/ public class LockItem {private final String key;private final String value;public LockItem(String key, String value) {this.key key;this.value value;}public String getKey…

CPU架构

CPU架构是指微处理器的设计和实现方式&#xff0c;它决定了处理器的基本运行原理和性能特性。不同的架构适用于不同的应用场景&#xff0c;下面是一些主要的CPU架构类型及其对应的产品&#xff1a; 1. x86/x86-64 架构 描述&#xff1a;最初由 Intel 开发的 x86 架构是目前个…

消消乐游戏开发,消除类游戏

消除游戏是一类简单而又充满乐趣的休闲游戏&#xff0c;通过匹配相同的元素来完成任务&#xff0c;其简单直观的玩法吸引了大量玩家。本文将为你介绍设计和开发一款成功的消除游戏的关键步骤。 1. 确定核心玩法机制 消除游戏的核心在于匹配相同的元素。首先&#xff0c;明确定…

uniapp自定义导航栏返回按键

目录 htmljscss最后 html <!-- #ifdef MP-WEIXIN || APP-PLUS --> <view class"tc header":style"topBarHeight() 0 ? : height: topBarHeight() px;padding-top: topBarTop() px"><view class"reg180" :style"top…

MyBatis Generator 插件 详解自动生成代码

MyBatis Generator&#xff08;MBG&#xff09;是MyBatis和iBATIS的代码生成器。可以生成简单CRUD操作的XML配置文件、Mapper文件(DAO接口)、实体类。实际开发中能够有效减少程序员的工作量&#xff0c;甚至不用程序员手动写sql。 它将为所有版本的MyBatis以及版本2.2.0之后的i…

YOLOV5 C++部署的人员检测项目【学习笔记(十一)】

本文为修改后的转载&#xff0c;没有转载链接&#xff0c;所以文章类型暂为原创 文章目录 一、安装Pytorch 及 YOLO v51.1 安装GPU版 pytorch1.2 安装YOLO v5所需依赖 二、YOLO v5训练自定义数据2.1 标注数据2.1.1 安装labelImg2.1.2 标注 2.2 准备数据集2.2.1 组织目录结构2.…