文章目录
- 前言
- 一、Kuboard部署准备
-
- [1.1 前提条件](#1.1 前提条件)
- [1.2 Kuboard官网参考](#1.2 Kuboard官网参考)
- 二、Kuboard部署步骤(Master节点执行)
-
- [2.1 执行部署命令](#2.1 执行部署命令)
- [2.2 检查Kuboard相关Pod状态](#2.2 检查Kuboard相关Pod状态)
- [2.3 检查Kuboard服务暴露情况](#2.3 检查Kuboard服务暴露情况)
- 三、Kuboard界面访问与集群导入
-
- [3.1 访问Kuboard Web界面](#3.1 访问Kuboard Web界面)
- [3.2 导入 Kubernetes 集群](#3.2 导入 Kubernetes 集群)
- [四、通过YAML文件创建Nginx Pod](#四、通过YAML文件创建Nginx Pod)
-
- [4.1 编写Nginx Pod的YAML文件](#4.1 编写Nginx Pod的YAML文件)
- [4.2 执行YAML文件创建Pod](#4.2 执行YAML文件创建Pod)
- [4.3 验证Pod创建结果](#4.3 验证Pod创建结果)
- 五、在Kuboard界面查看容器组(Pod)
- 六、通过Kuboard界面创建容器组与网络服务
-
- [6.1 创建命名空间(Namespace)](#6.1 创建命名空间(Namespace))
- [6.2 部署Deployment(管理Pod副本)](#6.2 部署Deployment(管理Pod副本))
- [6.3 创建NodePort服务(对外暴露访问)](#6.3 创建NodePort服务(对外暴露访问))
- [6.4 验证服务访问](#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环境,可提前了解功能:
二、Kuboard部署步骤(Master节点执行)
2.1 执行部署命令
通过kubectl apply
命令直接拉取Kuboard官方部署清单,一键创建Kuboard所需的命名空间、配置文件、服务账户、控制器等资源:
bash
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"状态,确保组件正常启动:
bash
kubectl get pod -n kuboard
正常输出如下(READY
列均为1/1
,STATUS
列为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界面访问):
bash
kubectl get svc -n kuboard
正常输出如下(TYPE
为NodePort
,PORT(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
文件,内容如下(字段已添加注释,便于理解):
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: nginx
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.14
imagePullPolicy: IfNotPresent
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 80
4.2 执行YAML文件创建Pod
通过kubectl apply
命令应用YAML文件,创建Nginx Pod:
bash
kubectl apply -f nginx.yaml
执行成功后,会输出pod/nginx created
。
4.3 验证Pod创建结果
可通过命令行或Kuboard界面验证Pod状态:
- 命令行验证:
kubectl get pod nginx
,若STATUS
为Running
,则创建成功;
- 界面验证:参考第五章步骤,在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集群的可视化管理。