【K8s】1# 使用kuboard-spray安装K8s集群
文章目录
- 搭建k8s集群
- 1.推荐配置
- 1.1.服务器配置
- 1.2.软件版本
- 2.使用`Kuboard-Spray`安装k8s集群
- 2.1.配置要求
- 2.2.操作系统兼容性
- 2.3.安装 Kuboard-Spray
- 2.4.加载离线资源包
- 2.5.规划并安装集群
- 2.6.安装成功
- 2.7.访问集群
- 3.涉及的命令
- 3.1.linux
- 4.问题汇总
- Q1:启动离线集群安装报错
- Q2.操作系统不支持(升级内核)
搭建k8s集群
前提是各节点已经安装了docker
1.推荐配置
1.1.服务器配置
| 节点 | 服务 | 配置 | 备注 |
|---|---|---|---|
| node1 | 192.168.33.102 | 2C4G | kuboard-spray、kuboard |
| node2 | 192.168.33.103 | 2C4G | master、etcd、worker |
| node3 | 192.168.33.104 | 2C4G | master、etcd、worker |
| node4 | 192.168.33.105 | 2C4G | master、etcd、worker |
| node5 | 192.168.33.106 | 2C4G | worker |
1.2.软件版本
| 软件 | 版本 | 备注 |
|---|---|---|
| Docker | 20.10.9, | |
| Kubernetes | v1.23.4 | |
| kuboard-spray | v1.2.4-amd64 | k8s 集群安装工具 |
| kuboard | v3.3.0.0 | k8s集群管理工具 |
2.使用Kuboard-Spray安装k8s集群
使用Kuboard-Spray安装k8s
Kuboard-Spray 是一款可以在图形界面引导下完成 Kubernetes 高可用集群离线安装的工具
2.1.配置要求
- 至少 2 台 2核4G 的服务器
- 本文档中,CPU 必须为 x86 架构,暂时未适配 arm 架构的 CPU
CentOS 7.8、CentOS 7.9或Ubuntu 20.04
2.2.操作系统兼容性
| Centos版本 | 本文档是否兼容 | 备注 |
|---|---|---|
| Centos 7.8 | ✔ | 已验证 |
| Centos 7.9 | ✔ | 已验证 |
| Ubuntu 20.04 | ✔ | 已验证 |
2.3.安装 Kuboard-Spray
- 取一台服务器或虚拟机,执行一条命令,即可完成
Kuboard-Spray的安装。 - 对这台服务器的最低要求为:
1核2G不少于 10G 磁盘空余空间
已经安装好 docker
- 待执行的命令如下:
docker run -d \--restart=unless-stopped \--name=kuboard-spray \-p 80:80/tcp \-e TZ=Asia/Shanghai \-v /var/run/docker.sock:/var/run/docker.sock \-v ~/kuboard-spray-data:/data \eipwork/kuboard-spray:v1.2.4-amd64# 如果抓不到这个镜像,可以尝试一下这个备用地址:# swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard-spray:latest-amd64
持久化
KuboardSpray的信息保存在容器的/data路径,请将其映射到一个您认为安全的地方,上面的命令中,将其映射到了~/kuboard-spray-data路径;- 只要此路径的内容不受损坏,重启、升级、重新安装
Kuboard-Spray,或者将数据及Kuboard-Spray迁移到另外一台机器上,> 您都可以找回到原来的信息。
注意: 这里为何使用eipwork/kuboard-spray:v1.2.4-amd64这个版本?因为官网推荐的版本安装失败–问题Q1

- 在浏览器打开地址
http://这台机器的IP,输入用户名admin,默认密码Kuboard123,即可登录Kuboard-Spray界面

2.4.加载离线资源包
因为我们的容器引擎是 docker20,所以选这个(
按需加载资源包)
如果不想自己踩坑,建议和我一样:如下资源包 ↓
- 在 Kuboard-Spray 界面中,导航到 系统设置 --> 资源包管理 界面,可以看到已经等候您多时的 Kuboard-Spray 离线资源包,如下图所示

- 点击 导 入 按钮,在界面的引导下完成资源包的加载。
注意:这里有个坑,切莫使用当前大版本中最新小版本:
- 比如最开始我导入的资源包如下 适用于
docker20.10的最新版本kuborad-spray,结果最后安装k8s集群的时候,死活装不上
- 最终使用如下版本,成功完成安装(
建议大家在尝试新玩具时,最好别用最新的,节省时间,珍爱生命)
- 权限问题
- 导入资源包时,可能会碰到
no such file or directory或者permission denied之类的错误提示,通常是因为您开启了SELinux,导致kuboard-spray不能读取映射到容器/data的路径- 离线导入
- 如果您处在内网环境,上图中的列表默认将是空的,请注意其中的 离线加载资源包 按钮,它可以引导您轻松完成资源包的离线加载过程。
2.5.规划并安装集群
-
在
Kuboard-Spray界面中,导航到 集群管理 界面,点击界面中的 添加集群安装计划 按钮,填写表单如下:- 集群名称: 自定义名称,本文中填写为 kuboard123;
- 资源包:选择前面步骤中导入的离线资源包。

- 点击上图对话框中的 确定 按钮后,将进入集群规划页面,在该界面中添加您每个集群节点的连接参数并设置节点的角色,如下图所示:
重要: kuboard-spray 所在机器不能当做 K8S 集群的一个节点,因为安装过程中会重启集群节点的容器引擎,这会导致 kuboard-spray 被重启掉。


- 点击上图的 保存 按钮,再点击 执行 按钮,可以启动集群的离线安装过程,如下图所示:
2.6.安装成功

2.7.访问集群
-
如果集群日志界面提示您集群已经安装成功,此时您可以返回到集群规划页面,此界面将自动切换到 访问集群 标签页,如下图所示:
界面给出了三种方式可以访问 kubernetes 集群:
- 在集群主节点上执行 kubectl 命令
- 获取集群的 .kubeconfig 文件
- 将集群导入到 kuboard管理界面

3.涉及的命令
3.1.linux
- 查看操作系统是centos还是ubuntu
cat /etc/redhat-release
4.问题汇总
Q1:启动离线集群安装报错

解决:安装
v1.2.4-amd64这个版本docker hub最新的
docker run -d \--restart=unless-stopped \--name=kuboard-spray \-p 80:80/tcp \-e TZ=Asia/Shanghai \-v /var/run/docker.sock:/var/run/docker.sock \-v ~/kuboard-spray-data:/data \eipwork/kuboard-spray:v1.2.4-amd64# 如果抓不到这个镜像,可以尝试一下这个备用地址:# swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard-spray:latest-amd64
Q2.操作系统不支持(升级内核)
芭比Q了 所有节点重装系统? no、no、no 别着急,我们直接升级内核就行,看下面操作

解决:升级 centos内核,把7.5 升级到最新 7.9即可解决
yum会把下载的软件包和eader存储在cache中,而不自动删除。所以需要先使用yum clean all命令清除缓存。yum clean all- 然后使用
yum update命令升级所有包、软件和系统内核。该操作有风险,请注意备份数据yum update- 期间会有询问你是否安装,有三个选项供你选择,输入
y即可,然后开始自动下载安装- 更新安装完后,重启系统
reboot- 验证
# cat /etc/centos-release CentOS Linux release 7.9.2009 (Core)
相关文章:
【K8s】1# 使用kuboard-spray安装K8s集群
文章目录 搭建k8s集群1.推荐配置1.1.服务器配置1.2.软件版本 2.使用Kuboard-Spray安装k8s集群2.1.配置要求2.2.操作系统兼容性2.3.安装 Kuboard-Spray2.4.加载离线资源包2.5.规划并安装集群2.6.安装成功2.7.访问集群 3.涉及的命令3.1.linux 4.问题汇总Q1:启动离线集…...
leetCode算法—12. 整数转罗马数字
12. 整数转罗马数字 难度:中等 ** 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即…...
使用OpenCV4实现工业缺陷检测的六种方法
目录 1 机器视觉2 缺陷检测3 工业上常见缺陷检测方法 1 机器视觉 机器视觉是使用各种工业相机,结合传感器跟电气信号实现替代传统人工,完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工业品的缺陷检测极大的依赖人工完成,…...
Excel 获取当前行的行数
ROW() 获取当前行 ROW()1 获取当前行然后支持二次开发...
R语言【stringr】——str_detect 检测是否存在字符串的匹配项
Package stringr version 1.5.1 str_detect(string, pattern, negate FALSE) 参数【string】:输入向量。既可以是字符向量,也可以是强制作为一个字符向量。 参数【pattern】:要寻找的模式。默认解释为正则表达式,如 vignette(&…...
【SpringMVC】SpringMVC的请求与响应
文章目录 0. Tomcat环境的配置1. PostMan工具介绍创建WorkSpace建立新的请求 2. 请求映射路径案例结构与代码案例结构案例代码 案例存在问题解决方案方法方法升级版——配置请求路径前缀注解总结 3. Get请求与Post请求案例结构与案例代码案例结构案例代码 Get请求Post请求接收中…...
Spring Boot3通过GraalVM生成exe执行文件
一、安装GraalVM 1、官网:https://www.graalvm.org/downloads/ 2、配置环境变量 2.1、环境变量必须使用JAVA_HOME,否则会出现问题 2.2、在系统变量配置Path,%JAVA_HOME%\bin,注意必须放在顶部第一位 2.3、配置jdk的环境变量,在P…...
【Amazon 实验②】使用缓存策略及源请求策略,用于控制边缘缓存的行为及回源行为
文章目录 1. 了解缓存策略和源请求策略1.1 使用缓存键和缓存策略 实验:使用CloudFront缓存策略和缓存键控制缓存行为 接上一篇文章【Amazon 实验①】使用 Amazon CloudFront加速Web内容分发,我们现在了解和配置如何使用缓存策略及源请求策略,…...
达梦数据对比工具的部署与使用
1、拷贝达梦软件bin目录到Oracle服务器(root用户) 压缩Linux rh6 x86版本的达梦数据库bin目录,例如压缩文件为dmbin.tar.gz,将文件拷贝到Oracle服务器指定目录并解压(如:/home/oracle/dmbin)&a…...
TLC2543(12位A/D转换器)实现将输入的模拟电压显示到数码管上
代码: #include <reg51.h> #define uchar unsigned char #define uint unsigned int// 数码管0-9 unsigned char seg[] {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; sbit SDO P1^0; sbit SDI P1^1; sbit CS P1^2; sbit CLK P1^3; s…...
npm的使用技巧
以下是一些NPM(Node Package Manager)的使用技巧: 1. **获取帮助**: - 使用 npm help 或者 npm <command> --help 可以获取关于特定命令的帮助信息。 2. **命令自动完成**: - 在 Bash、Zsh 等 shell 中&…...
MySQL 5.6的新特性
MySQL 5.6是一个主要的版本发布,它在性能、可伸缩性、可靠性和可用性方面引入了多项重要改进和新特性。它在2013年发布,相比于它的前身MySQL 5.5,MySQL 5.6带来了以下关键升级: 优化的InnoDB存储引擎:MySQL 5.6中的Inn…...
大模型重构云计算:AI原生或将改变格局
摘要:随着AI技术的快速发展,大模型正逐渐改变云计算的格局。本文将深入探讨大模型如何重构云计算,并分析其对云计算的影响。 一、开篇引言 近年来,人工智能技术的飞速发展,特别是大模型的崛起,正在对云计算…...
一文讲清什么是TypeScript装饰器以及如何使用TypeScript装饰器
TypeScript 装饰器是什么? 装饰器(Decorator)是TypeScript提供的一个高级语法,它类似于一种特殊类型的声明,可以附加到类声明,方法,访问符,属性或参数上。装饰器主要以函数的形式出…...
恶意软件样本行为分析——Process Monitor和Wireshark
1.1 实验名称 恶意软件样本行为分析 1.2 实验目的 1) 熟悉 Process Monitor 的使用 2) 熟悉抓包工具 Wireshark 的使用 3) VMware 的熟悉和使用 4) 灰鸽子木马的行为分析 1.3 实验步骤及内容 第一阶段:熟悉 Process Monitor 的使用 利用 Process …...
【XR806开发板试用】通过http请求从心知天气网获取天气预报信息
1. 开发环境搭建 本次评测开发环境搭建在windows11的WSL2的Ubuntu20.04中,关于windows安装WSL2可以参考文章: Windows下安装Linux(Ubuntu20.04)子系统(WSL) (1) 在WSL的Ubuntu20.04下安装必要的工具的. 安装git: sudo apt-get install git …...
NPM介绍与使用
什么是NPM? NPM(Node Package Manager)是一个强大的包管理工具,专门用于Node.js应用程序的依赖管理。它允许开发者轻松地分享、安装、更新和管理项目中使用的库、工具和框架。 NPM的安装 在使用NPM之前,请确保你的机…...
servlet +thymeleaf渲染引擎
servlet thymeleaf渲染引擎 一、maven坐标 <dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf</artifactId><version>3.0.12.RELEASE</version> <!-- 使用适当的Thymeleaf版本 --> </dependency> &…...
10分钟了解nextTick,并实现简易版本的nextTick
在 Vue.js 中,有一个特殊的方法 nextTick,它在 DOM 更新后执行一段代码,起到等待 DOM 绘制完成的作用。本文会详细介绍 nextTick 的原理和使用方法,并实现一个简易版的 nextTick,加深对它的理解。 一. 什么是 nextTic…...
oracle表空间对象迁移到其他表空间
oracle数据库的磁盘空间满了,除了简单粗暴的增加磁盘空间外,还可以缩小表空间的datafile,因为正常业务运行中,表数据的删除和增加,会造成表空间里面里面有很多空的地方。方案有很多种,我这里简单介绍一下&a…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
TJCTF 2025
还以为是天津的。这个比较容易,虽然绕了点弯,可还是把CP AK了,不过我会的别人也会,还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...
React核心概念:State是什么?如何用useState管理组件自己的数据?
系列回顾: 在上一篇《React入门第一步》中,我们已经成功创建并运行了第一个React项目。我们学会了用Vite初始化项目,并修改了App.jsx组件,让页面显示出我们想要的文字。但是,那个页面是“死”的,它只是静态…...
高保真组件库:开关
一:制作关状态 拖入一个矩形作为关闭的底色:44 x 22,填充灰色CCCCCC,圆角23,边框宽度0,文本为”关“,右对齐,边距2,2,6,2,文本颜色白色FFFFFF。 拖拽一个椭圆,尺寸18 x 18,边框为0。3. 全选转为动态面板状态1命名为”关“。 二:制作开状态 复制关状态并命名为”开…...



