Kuberbetes图形化界面之Kuboard

news2024/11/16 2:28:15

1.1 Kuboard

  • Kuboard 是一个 Kubernetes 可视化管理平台,它提供了一种简单易用的方式来管理和监控 Kubernetes 集群。通过 Kuboard,用户可以轻松地部署、扩展和管理容器化应用程序,同时它还提供了一些高级功能,比如集群监控、日志管理、资源管理等。

  • 官网:Kuboard_Kubernetes教程_K8S安装_管理界面

1.1.1 要求

Kubernetes 版本Kuboard 版本兼容性说明
v1.28v3.5.2.x😄已验证
v1.27v3.x😄已验证
v1.26v3.x😄已验证
v1.25v3.x😄已验证
v1.24v3.x😄已验证
v1.23v3.x😄已验证
v1.22v3.x😄已验证
v1.21v3.x😄已验证
v1.20v3.x😄已验证
v1.19v3.x😄已验证
v1.18v3.x😄已验证
v1.17v3.x😄已验证
v1.16v3.x😄已验证
v1.15v3.x😄已验证
v1.14v3.x😄已验证
v1.13v3.x😄已验证
v1.12v3.x😐Kubernetes Api v1.12 不支持 dryRun, Kuboard 不支持 Kubernetes v1.12
v1.11v3.x😐Kuboard 不支持 Kubernetes v1.11

建议以 docker run 的方式运行 Kuboard:

  • 结构更清晰(Kuboard 作为多个集群的管理界面应该独立于任何集群之外,虽然安装在 Kubernetes 集群中的 Kuboard 也可以管理多个集群);

  • 登录 Kuboard 时使用不同的认证方式;

  • 问题排查更简单;

1.1.2 内建用户库部署kuboard V3

在正式安装 kuboard v3 之前,需做好一个简单的部署计划的设计,在本例中,各组件之间的连接方式,如下图所示:

  • 假设用户通过 http://外网IP:80 访问 Kuboard v3;

  • 安装在 Kubernetes 中的 Kuboard Agent 通过 内网IP 访问 Kuboard 的 Web 服务端口 80 和 Kuboard Agent Server 端口 10081。

img

安装 Kuboard 之前,假设:

  • 您已经准备好了一个 Linux 服务器用于安装 Kuboard-V3,并且该机器上的 docker 版本不低于 19.03

  • 用于安装 Kuboard v3.x 的机器已经安装了 docker,并且版本不低于 docker 19.03

  • 您已经有自己的 Kubernetes 集群,并且版本不低于 Kubernetes v1.13

[root@k8s-master-01 ~]# mkdir kuboard-v3
[root@k8s-master-01 ~]# cd kuboard-v3/
[root@k8s-master-01 kuboard-v3]# docker run -d \
--restart=unless-stopped \
--name=kuboard \
-p 80:80/tcp \
-p 10081:10081/tcp \
-e KUBOARD_ENDPOINT="http://192.168.110.21:80" \
-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
-v /root/kuboard-data:/data \
eipwork/kuboard:v3
​
# 也可以使用镜像 swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 ,可以更快地完成镜像下载。
# 请不要使用 127.0.0.1 或者 localhost 作为内网 IP \
# Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server \
# 这里确保80端口没有监听,或者直接修改端口

1.1.3 WARNING

  • KUBOARD_ENDPOINT 参数的作用是,让部署到 Kubernetes 中的 kuboard-agent 知道如何访问 Kuboard Server;

  • KUBOARD_ENDPOINT 中也可以使用外网 IP;

  • Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server;

  • 建议在 KUBOARD_ENDPOINT 中使用域名;

  • 如果使用域名,必须能够通过 DNS 正确解析到该域名,如果直接在宿主机配置 /etc/hosts 文件,将不能正常运行;

1.1.4 参数解释

  • 建议将此命令保存为一个 shell 脚本,例如 start-kuboard.sh,后续升级 Kuboard 或恢复 Kuboard 时,需要通过此命令了解到最初安装 Kuboard 时所使用的参数;

  • 第 4 行,将 Kuboard Web 端口 80 映射到宿主机的 80 端口(您可以根据自己的情况选择宿主机的其他端口);

  • 第 5 行,将 Kuboard Agent Server 的端口 10081/tcp 映射到宿主机的 10081 端口(您可以根据自己的情况选择宿主机的其他端口);

  • 第 6 行,指定 KUBOARD_ENDPOINT 为 http://内网IP,如果后续修改此参数,需要将已导入的 Kubernetes 集群从 Kuboard 中删除,再重新导入;

  • 第 7 行,指定 KUBOARD_AGENT_SERVER 的端口为 10081,此参数与第 5 行中的宿主机端口应保持一致,修改此参数不会改变容器内监听的端口 10081,例如,如果第 5 行为 -p 30081:10081/tcp 则第 7 行应该修改为 -e KUBOARD_AGENT_SERVER_TCP_PORT="30081"

  • 第 8 行,将持久化数据 /data 目录映射到宿主机的 /root/kuboard-data 路径,请根据您自己的情况调整宿主机路径;

1.1.5 访问 Kuboard v3.x

在浏览器输入 http://your-host-ip:80 即可访问 Kuboard v3.x 的界面,登录方式:

  • 用户名: admin

  • 密 码: Kuboard123

  • 在启动命令行中增加环境变量 KUBOARD_ADMIN_DERAULT_PASSWORD,可以设置 admin 用户的初始默认密码。

image-20240524110332424

image-20240524110532567

1.1.6 添加集群

image-20240524110715382

  • 粘贴这些内容获取Token

[root@k8s-master-01 kuboard-v3]# cat << EOF > kuboard-create-token.yaml
---
apiVersion: v1
kind: Namespace
metadata:
  name: kuboard
​
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kuboard-admin
  namespace: kuboard
​
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kuboard-admin-crb
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kuboard-admin
  namespace: kuboard
​
---
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
  annotations:
    kubernetes.io/service-account.name: kuboard-admin
  name: kuboard-admin-token
  namespace: kuboard
EOF
[root@k8s-master-01 kuboard-v3]# 
[root@k8s-master-01 kuboard-v3]# kubectl apply -f kuboard-create-token.yaml 
[root@k8s-master-01 kuboard-v3]# echo -e "\033[1;34m将下面这一行红色输出结果填入到 kuboard 界面的 Token 字段:\033[0m"
将下面这一行红色输出结果填入到 kuboard 界面的 Token 字段:
[root@k8s-master-01 kuboard-v3]# echo -e "\033[31m$(kubectl -n kuboard get secret $(kubectl -n kuboard get secret kuboard-admin-token | grep kuboard-admin-token | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)\033[0m"
eyJhbGciOiJSUzI1NiIsImtpZCI6IlpmcEhiNTFfcDBka3pYM2VCeUVwR1hIMFNBZHNnX25TY0FwMDhjazhRdUkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJvYXJkIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6Imt1Ym9hcmQtYWRtaW4tdG9rZW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC1hZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImZhZTg1Y2ExLTU0ZmItNGZlZS05OTAzLTU0OTVhN2RkMWIxYiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJvYXJkOmt1Ym9hcmQtYWRtaW4ifQ.lQgXCznEGbNKVi8j7f5ZGbJreDHTAveIv-YftX-0P1LsmGKmpICnwmKAgv558GPxlOrtABdEvyUmGCHP_IkIwpAbBjiZubPaVDM-nFsUvpTsmXNJ-brkbFFhYY5LxE5d74XrDdc0z8WBXzzt-Ipb0Jy30GdGea33CH0qMvS_xBaGd6ObjJnUomlX8ZC6EeYMfquaOMoVBEv-R-88fxxj7-oWHQtYMYmHYrO-1vD2R7CFjbN6Dtx0wE-4hDsw8SelL1YS4k-fA2UG-MoUL-xXmBVFWzVTDDI96ctZK7LIfANmABo1I6O_rVR5Bc0z5BssIXflRn4InK6ryOmvoezZNQ

image-20240524110922705

image-20240524110951219

image-20240524111107880

image-20240524111158005

1.1.7 测试

  • 创建NameSpace

image-20240524111258282

image-20240524111341062

[root@k8s-master-01 kuboard-v3]# kubectl get ns dev
NAME   STATUS   AGE
dev    Active   27s
  • 部署工作负载

image-20240524111724049

image-20240524112524976

image-20240524112056455

image-20240524113824920

image-20240524112559662

[root@k8s-master-01 kuboard-v3]# kubectl get pod -n dev -o wide
NAME                        READY   STATUS    RESTARTS   AGE   IP               NODE          NOMINATED NODE   READINESS GATES
nginx-pod-8959999b6-46ksq   1/1     Running   0          71s   10.244.154.198   k8s-node-01   <none>           <none>
nginx-pod-8959999b6-lzgfh   1/1     Running   0          71s   10.244.44.195    k8s-node-02   <none>           <none>
nginx-pod-8959999b6-qxlhk   1/1     Running   0          71s   10.244.44.196    k8s-node-02   <none>           <none>

image-20240524112815921

[root@k8s-master-01 ~]# kubectl get svc -n dev
NAME        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
nginx-pod   NodePort   10.109.210.215   <none>        81/3008   20s

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

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

相关文章

YOLOv10环境搭建、模型预测和ONNX推理

目录 1、开源代码、模型下载 2、环境配置 3、模型预测 4、onnxruntime测试 1、开源代码、模型下载 代码下载链接&#xff1a;https://github.com/THU-MIG/yolov10 模型下载&#xff1a; YOLOv10-N&#xff1a;https://github.com/THU-MIG/yolov10/releases/download/v1.1/…

Linux系统安装AMH服务器管理面板并实现远程访问管理维护

目录 前言 1. Linux 安装AMH 面板 2. 本地访问AMH 面板 3. Linux安装Cpolar 4. 配置AMH面板公网地址 5. 远程访问AMH面板 6. 固定AMH面板公网地址 1. 部署Docker Registry 2. 本地测试推送镜像 3. Linux 安装cpolar 4. 配置Docker Registry公网访问地址 5. 公网远程…

【NumPy】关于numpy.divide()函数,看这一篇文章就够了

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

Kubernetes可视化界面之DashBoard

1.1 DashBoard Kubernetes Dashboard 是 Kubernetes 集群的一个开箱即用的 Web UI&#xff0c;提供了一种图形化的方式来管理和监视 Kubernetes 集群中的资源。它允许用户直接在浏览器中执行许多常见的 Kubernetes 管理任务&#xff0c;如部署应用、监控应用状态、执行故障排查…

AI整体架构设计6:vLLM

训练大型语言模型以及微调的教程比比皆是&#xff0c;但关于在生产环境中部署它们并监控其活动的资料相对稀缺。上个章节提到了未来云原生的AI是趋势&#xff0c;然而涉及到云原生会比较偏技术。而在此之前为了解决大模型部署量产的问题&#xff0c;社区也一直在探索&#xff0…

数据链路层 + NAT技术

数据链路层&#xff1a;负责设备之间的数据帧的传送和识别。 一、以太网 以太网的帧格式 如何分离报头和有效数据&#xff1f; 报头是固定长度的 如何将数据交给上层协议&#xff1f; 通过类型&#xff0c;如果是0800&#xff0c;则交给IP协议&#xff0c;如果是0806&#xf…

华火硬核专利库丨登创新科技之巅,探创新未至之境

十年的艰苦卓越&#xff0c;“灶”就了华火科技之巅&#xff1b;电生明火的应用&#xff0c;不仅是一次颠覆性的创新&#xff0c;更是对未来厨房的无尽遐想与探索。在当今日新月异的科技时代&#xff0c;创新已成为推动社会进步的重要动力。 华火烹饪科技&#xff0c;以其深厚的…

【空号检测】手机号码状态识别背后的神秘力量:信令检测技术揭秘!

在当今数字化时代&#xff0c;了解一个手机号码的真实状态——是空号、停机还是活跃使用&#xff0c;对于企业运营、客户服务乃至个人通讯管理都至关重要。这一切高效而精准的查询能力&#xff0c;很大程度上归功于一项核心技术——信令检测技术。 免费测试地址&#xff1a;号…

【Django】中间件实现钩子函数预处理和后处理,局部装饰视图函数

在app文件夹里新建middleware.py继承MiddlewareMixin&#xff0c; 编写中间件类&#xff0c;重写process_request、process_response钩子函数 from django.http import HttpRequest, HttpResponse from django.utils.decorators import decorator_from_middleware from django…

使用MyBatis进行批量新增更新操作 ON CONFLICT

1.数据库增加uniques 2.mybatis <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace"co…

蓝桥杯2023(十四届)省赛——接龙数列(DP)

接龙数列&#xff08;DP&#xff09; 1.接龙数列 - 蓝桥云课 (lanqiao.cn) 琢磨半天&#xff0c;本来是开一个三维的&#xff0c;dp[i][j][k] 表示 前i个&#xff0c;以j为首项&#xff0c;k为尾项的最大子集个数&#xff0c;但是实际上用二维即可。想求的是删除个数&#xf…

【SpringCloud】负载均衡

目录 负载均衡什么是负载均衡生活场景为什么需要负载均衡负载均衡手段负载均衡总的来说有两种实现手段负载均衡具体可以通过多种手段来实现 SpringCloud中的负载均衡组件Ribbon VS Nginx负载均衡区别集中式LB进程内LB RibbonRibbon的工作原理Ribbon在工作时分成两步 使用1.提供…

二叉树经典OJ题分析

目录 一、单值二叉树 1.1 题目 1.2 思路 1.3 C语言题解 二、相同的树 2.1 题目 2.2 思路 2.3 C语言题解 三、对称二叉树 3.1 题目 3.2 思路 3.3 C语言题解 四、另一颗树的子树 4.1 题目 4.2 思路 4.3 C语言题解 五、翻转二叉树 5.1 题目 5.2 思路 5.3 C语言…

Elasticsearch之文本分析

文本分析基本概念 官网&#xff1a;Text analysis | Elasticsearch Guide [7.17] | Elastic 官网称为文本分析&#xff0c;这是对文本进行一直分析处理的方式&#xff0c;基本处理逻辑是为按照预先制定的分词规则&#xff0c;把原本的文档进行分割成多个小颗粒度的词项&#x…

800HZ电源-高频电源行业的明星

一、800Hz电源的简介&#xff1a; 800Hz电源&#xff0c;顾名思义&#xff0c;是一种专为满足通信系统中特定频率要求而设计的电源。通常&#xff0c;800Hz电源具有极高的稳定性和精确度&#xff0c;能提供稳定的电压输出&#xff0c;确保通信设备如交换机、基站、无线路由器等…

动手学操作系统(一、搭建实验环境)

动手学操作系统&#xff08;一、搭建实验环境&#xff09; 文章目录 动手学操作系统&#xff08;一、搭建实验环境&#xff09;1. 在VMware虚拟机中安装ubuntu20.042. 安装Bochs3. 启动计算机Reference &#x1f680; 环境配置 &#x1f680; 笔者的环境使用的是 ubuntu 20.04…

计算机图形学入门Games101笔记01:Overview of Computer Graphics

第一章讲述了计算机图形学是什么和GAMES101会讲什么 1.What is Computer Graphics? The use of computers to synthesize and manipulate visual information. 图形学是合成和操纵视觉信息的计算机应用。 百度百科&#xff1a;计算机图形学(Computer Graphics&#xff0c;简…

从零开始:如何集成美颜SDK和优化美颜接口

今天&#xff0c;小编将从零开始&#xff0c;详细讲解如何集成SDK并优化美颜接口。 一、选择合适的美颜SDK 评估SDK的功能 在评估过程中&#xff0c;可以通过阅读官方文档、查看示例代码以及实际测试来确定SDK是否符合需求。 兼容性和性能 确保其支持你开发的应用平台&…

开发多个工具包的黑产团伙GXC正在积极拥抱AI技术

研究人员发现一个名为 GXC Team 的犯罪团伙&#xff0c;该团伙专门开发用于网上银行盗窃、电子商务欺诈与互联网诈骗的工具。2023 年 11 月 11 日&#xff0c;该组织以别名 googleXcoder 在暗网上发布多项公告。开始售卖新开发的结合人工智能的工具&#xff0c;用于创建用于电汇…

【必备工具】gitee上传-保姆级教程

目录 1.gitee是什么 2.gitee怎么注册 ​编辑 3.gitee怎么提交代码 4.gitee的三板斧 Clone仓库 Q&A 1. Gitee 只有三板斧吗&#xff1f; 2. Git 教了&#xff0c;Gitee 上没有绿点怎么办&#xff1f; 3. 用户名和密码输入错误怎么办&#xff1f; 4. 操作时不小心…