当前位置: 首页 > news >正文

K8S(十七)—— Kubernetes集群可视化工具Kuboard部署与实践指南

文章目录

  • 前言
  • 一、Kuboard部署准备
    • 1.1 前提条件
    • 1.2 Kuboard官网参考
  • 二、Kuboard部署步骤(Master节点执行)
    • 2.1 执行部署命令
    • 2.2 检查Kuboard相关Pod状态
    • 2.3 检查Kuboard服务暴露情况
  • 三、Kuboard界面访问与集群导入
    • 3.1 访问Kuboard Web界面
    • 3.2 导入 Kubernetes 集群
  • 四、通过YAML文件创建Nginx Pod
    • 4.1 编写Nginx Pod的YAML文件
    • 4.2 执行YAML文件创建Pod
    • 4.3 验证Pod创建结果
  • 五、在Kuboard界面查看容器组(Pod)
  • 六、通过Kuboard界面创建容器组与网络服务
    • 6.1 创建命名空间(Namespace)
    • 6.2 部署Deployment(管理Pod副本)
    • 6.3 创建NodePort服务(对外暴露访问)
    • 6.4 验证服务访问
  • 总结

前言

在Kubernetes(简称K8s)集群管理中,命令行工具(kubectl)虽灵活,但面对复杂的集群资源(如Pod、Deployment、Service)时,可视化工具能大幅降低操作门槛、提升管理效率。Kuboard作为一款轻量且功能全面的K8s可视化工具,支持集群导入、资源创建、状态监控等核心操作,且部署流程简单。

本文基于已搭建完成的K8s集群,详细讲解Kuboard的部署步骤、界面访问与集群导入,并通过“YAML文件”和“界面操作”两种方式实践容器组(Pod)与网络服务(Service)的创建,适合K8s初学者快速上手可视化管理。

一、Kuboard部署准备

1.1 前提条件

已成功搭建K8s集群,且操作节点(本文为master节点,主机名master01)具备kubectl命令执行权限(即已配置K8s集群管理员证书)。

K8s集群搭建可以参考:K8S(三)—— 基于kubeadm 1.20版本部署Kubernetes集群与Harbor私有仓库实战

1.2 Kuboard官网参考

Kuboard官方提供了详细的部署文档与Demo环境,可提前了解功能:
官网地址:https://demo.kuboard.cn/

二、Kuboard部署步骤(Master节点执行)

2.1 执行部署命令

通过kubectl apply命令直接拉取Kuboard官方部署清单,一键创建Kuboard所需的命名空间、配置文件、服务账户、控制器等资源:

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

执行后会输出以下资源创建成功的信息(无需修改,直接执行即可):

namespace/kuboard created
configmap/kuboard-v3-config created
serviceaccount/kuboard-boostrap created
clusterrolebinding.rbac.authorization.k8s.io/kuboard-boostrap-crb created
daemonset.apps/kuboard-etcd created
deployment.apps/kuboard-v3 created
service/kuboard-v3 created

2.2 检查Kuboard相关Pod状态

部署完成后,需确认Kuboard所属命名空间(kuboard)下的Pod均处于“Running”状态,确保组件正常启动:

kubectl get pod -n kuboard 

正常输出如下(READY列均为1/1STATUS列为Running):

NAME                              READY   STATUS    RESTARTS   AGE
kuboard-agent-2-786b4667d-8d2ns   1/1     Running   0          35s
kuboard-agent-57d4fbd758-kr462    1/1     Running   0          35s
kuboard-etcd-v6prh                1/1     Running   0          88s
kuboard-v3-59ccddb94c-cblq9       1/1     Running   0          88s

若Pod处于“Pending”或“Error”状态,可通过kubectl describe pod <Pod名称> -n kuboard查看错误原因(常见问题:镜像拉取失败、资源不足)。

2.3 检查Kuboard服务暴露情况

Kuboard通过NodePort类型的Service暴露外部访问端口,需确认服务端口映射关系(重点关注30080端口,用于Web界面访问):

kubectl get svc -n kuboard 

正常输出如下(TYPENodePortPORT(S)80:30080/TCP表示集群内80端口映射到节点30080端口):

NAME         TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)                                        AGE
kuboard-v3   NodePort   10.96.134.33   <none>        80:30080/TCP,10081:30081/TCP,10081:30081/UDP   108s

三、Kuboard界面访问与集群导入

3.1 访问Kuboard Web界面

1、打开浏览器,输入访问地址:http://<Master节点IP>:30080/
(本文Master节点IP为192.168.10.14,实际地址需替换为你的Master节点IP)
2、输入默认管理员账号和密码:

  • 账号:admin
  • 密码:Kuboard123

在这里插入图片描述

3.2 导入 Kubernetes 集群

首次登录 Kuboard 后,需要将已有的 Kubernetes 集群导入到 Kuboard 进行统一管理。操作步骤如下:

1、点击左侧菜单栏 【Kubernetes 集群】
2、在右侧页面选择 【Kubernetes 集群列表】,然后点击右侧的 【添加集群】
在这里插入图片描述
3、在弹出的导入界面中,选择导入方式为 Token(默认选项),集群名称为k8s-cluster
4、根据页面提示,复制 Kuboard 提供的命令脚本(kuboard-create-token.yaml)到 Kubernetes 集群的 master 节点执行,用于自动创建 ServiceAccount(kuboard-admin)及访问凭证。
在这里插入图片描述

5、执行完脚本后,复制红色输出字段以获得Token:
在这里插入图片描述

复制输出中的 token 值。
6、回到 Kuboard 导入界面,在表单中填写:

  • 名称:自定义集群名称;
  • ApiServer 地址:集群 API Server 地址(例如 https://<master节点IP>:6443);
  • Token:粘贴上一步复制的 Token。
    在这里插入图片描述

7、点击 【确定】 按钮,等待 Kuboard 自动连接集群。
8、选择访问集群时所使用的身份,选择使用ServiceAccount kuboard-admin,拥有对集群的完全管理权限。
在这里插入图片描述

导入完成后,即可在集群列表中查看该集群的整体状态及资源信息。

在这里插入图片描述

四、通过YAML文件创建Nginx Pod

Pod是K8s最小的部署单元,此处通过编写YAML文件创建一个Nginx Pod,并配置资源限制与端口暴露。

4.1 编写Nginx Pod的YAML文件

使用vim编辑器创建nginx.yaml文件,内容如下(字段已添加注释,便于理解):

vim nginx.yaml
apiVersion: v1  # API版本,Pod属于v1版本资源
kind: Pod       # 资源类型,此处为Pod
metadata:name: nginx   # Pod名称,需唯一labels:name: nginx # Pod标签,用于后续筛选或关联服务
spec:containers:   # 容器列表(一个Pod可包含多个容器)- name: nginx # 容器名称image: nginx:1.14 # 容器镜像(指定版本为1.14,避免拉取最新版导致兼容性问题)imagePullPolicy: IfNotPresent # 镜像拉取策略:本地有则不用拉取,本地没有再从仓库拉取resources:  # 资源限制配置limits:   # 资源上限memory: "128Mi" # 最大内存限制为128兆cpu: "500m"     # 最大CPU限制为0.5核(1核=1000m)ports:      # 容器端口暴露(仅声明,不对外提供访问)- containerPort: 80 # 容器内Nginx服务的默认端口======================================================================================
apiVersion: v1
kind: Pod
metadata:name: nginxlabels:name: nginx
spec:containers:- name: nginximage: nginx:1.14imagePullPolicy: IfNotPresentresources:limits:memory: "128Mi"cpu: "500m"ports:- containerPort: 80

4.2 执行YAML文件创建Pod

通过kubectl apply命令应用YAML文件,创建Nginx Pod:

kubectl apply -f nginx.yaml

执行成功后,会输出pod/nginx created

4.3 验证Pod创建结果

可通过命令行或Kuboard界面验证Pod状态:

  • 命令行验证:kubectl get pod nginx,若STATUSRunning,则创建成功;
    在这里插入图片描述
  • 界面验证:参考第五章步骤,在Kuboard界面查看Pod状态。

五、在Kuboard界面查看容器组(Pod)

Kuboard界面可直观查看Pod的运行状态、资源使用情况、日志等信息,步骤如下:
1、登录Kuboard界面,点击【名称空间-选择】,选择default(即namespace);
在这里插入图片描述

2、点击左侧菜单栏【应用程序】;
2、在下拉菜单中选择【容器组】(容器组即Pod的可视化称呼);
3、在容器组列表中,可找到名为nginx的Pod,查看其状态、运行节点、资源使用率等信息;
在这里插入图片描述

4、点击Pod名称,可进入详情页,查看容器日志、执行命令(如exec进入容器内部)等操作。
在这里插入图片描述
在这里插入图片描述

六、通过Kuboard界面创建容器组与网络服务

除了YAML文件,Kuboard支持纯界面操作创建资源,此处实践命名空间创建→Deployment部署→NodePort服务创建的完整流程。

6.1 创建命名空间(Namespace)

命名空间用于隔离集群资源(如不同环境的资源分属不同命名空间),步骤如下:
1、点击左侧菜单栏【命名空间】,在命名空间列表页面点击【选择】;
在这里插入图片描述

2、点击【创建】,在弹出的表单中设置命名空间名称为yjs
在这里插入图片描述
在这里插入图片描述

3、点击【保存】,返回命名空间列表,可看到yjs命名空间已创建成功。
在这里插入图片描述

6.2 部署Deployment(管理Pod副本)

Deployment是K8s用于管理Pod的控制器,支持Pod副本数控制、滚动更新等功能,此处创建一个名为myapp-test的Deployment,步骤如下:
1、进入yjs命名空间(点击命名空间列表中的yjs);
2、点击【常用操作】,在下拉菜单中选择【创建工作负载】;
3、在Deployment配置页面,填写以下信息:

  • 【工作负载类型】:部署(Deployment)
  • 【工作负载名称】:myapp-test(Deployment名称);
  • 【标签】:点击【添加标签】,设置“键”为app,“值”为myapp-test(标签需与后续服务关联);
  • 【副本数】:3(创建3个Pod副本,提高服务可用性);

在这里插入图片描述

4、配置容器信息:点击添加工作容器

  • 【容器名称】:myapp-test
  • 【容器镜像】:soscscs/myapp:v1(该镜像是一个简单的测试应用,包含Web页面);
  • 【镜像拉取策略】:IfNotPresent
  • 【容器端口】:点击【+添加端口】,设置“协议”为TCP,“端口名称”为http,“容器端口”为80

在这里插入图片描述
在这里插入图片描述

5、点击页面上方【保存】,等待Deployment创建完成,此时会自动创建3个myapp-test的Pod副本。
在这里插入图片描述
在这里插入图片描述

6.3 创建NodePort服务(对外暴露访问)

Deployment创建的Pod仅能在集群内部访问,需通过Service暴露外部访问端口,此处选择NodePort类型(通过节点IP+端口访问),步骤如下:
1、点击左侧菜单栏【服务】,进入服务列表页面;
在这里插入图片描述

2、点击右侧【创建】,在服务配置页面填写以下信息:

  • 【服务名称】:myapp-test(与Deployment名称保持一致,便于识别);
  • 【选择器】:点击【添加标签选择器】,设置“键”为app,“值”为myapp-test(需与Deployment的标签完全一致,否则无法关联Pod);
  • 【服务类型】:选择NodePort
  • 【端口】:点击【添加端口】,设置“名称”为http,“协议”为TCP,“port”为80,“NodePort”为32000(外部访问端口,需在30000-32767范围内),“targetPort”为80(Pod内应用的端口);

在这里插入图片描述

3、点击页面上方【保存】,服务创建完成。
在这里插入图片描述

6.4 验证服务访问

服务创建成功后,可通过http://<任意节点IP>:32000访问myapp-test应用(节点IP可使用Master或Worker节点IP),若能看到测试页面,则服务暴露成功。
在这里插入图片描述

总结

本文从Kuboard部署入手,逐步讲解了界面访问、集群导入,并通过YAML文件界面操作两种方式实践了Pod与Service的创建,核心收获如下:
1、Kuboard部署简单,通过官方YAML文件可一键完成,且界面友好,适合初学者快速掌握K8s资源管理;
2、YAML文件创建资源更灵活,便于版本控制与批量部署;界面操作更直观,适合快速验证或临时创建资源;
3、Service的NodePort类型是对外暴露服务的常用方式,需注意端口范围(30000-32767)与标签选择器的正确性。

后续可进一步探索Kuboard的其他功能,如资源监控、日志收集、滚动更新等,逐步深入K8s集群的可视化管理。

http://www.dtcms.com/a/507192.html

相关文章:

  • 74-基于Python的蜜雪冰城门店数据可视化分析系统
  • 正点原子RK3568学习日志11-申请字符设备号
  • k8s device plugin
  • 征二级网站建设意见 通知室内装修设计企业
  • 【Maven】Maven设置国内源
  • 软件设计师知识点总结:程序设计语言基础
  • 让Pycharm的Terminal(终端)进入创建好的虚拟环境
  • [css] 图片阴影 filter: drop-shadow
  • 第三章深度学习---核心库TensorFlow 和 PyTorch 实操指南(三)
  • BugKu Web渗透之 cookiesWEB
  • 【研究生随笔】Pytorch中的线性代数(微分)
  • 专业品牌设计网站建设网站建设实训心得
  • 从暴力到最优——力扣88.合并两个有序数组
  • C语言——回调函数的典型示例(分析详解)
  • 雷州网站建设公司网站备案半身照
  • 【AI 风向标】gpt-oss20b 模型测试与评估报告(2025-08-21)
  • Java MyBatis(二)--- 多表查询,# 和 $的区别,SQL注入,数据库连接池,动态SQL
  • 深圳小企业网站建设vs做网站怎么放视频
  • 企业 做网站云虚拟主机搭建网站
  • PHP实现企业微信 会话存档功能
  • centos 7.9 编译安装 freeswitch 1.10.12
  • FT32A103RDAT3是什么芯片?车规级32位国产MCU可替代STM32F103RD
  • uni-app从后端返回的富文本中的视频截取一帧为封面
  • 若依前后端分离版学习笔记(二十)——实现滑块验证码(vue3)
  • Linux 服务器安全巡检与加固:从命令到实操(CentOS/Ubuntu 通用)
  • 网站如何让百度收录官网seo是什么意思
  • STM32U5G9J-DK2开发板获取RAM占用
  • 从架构到运营:AIOps与O-AA™ 如何实现智能化企业运营
  • 徐州手机网站定制公司哪家好西安大型网站制作
  • 【Day 80】Linux-NAS 和 SAN 存储